我刚刚安装了Spree电子商务CMS而没有太多头疼。我完全不知道这个消息意味着什么。有人可以慢慢向我解释这个吗?
Nokogiri似乎是某种渲染器?请向我解释一下,我认为rails服务器处理了所有资产的获取和渲染?
LibXML是一个XML C解析器。有人可以解释什么是XML C解析器吗?
'反对'意味着什么?
我很熟悉ruby,但我是部署新手。这个管理方面的事情是完全陌生的!谢谢你帮助我!
答案 0 :(得分:7)
Nokogiri是一个XML解析库,实际上是LibXML的一个聪明的包装器,LibXML是一个用C语言编写的解析XML的库.Nokogiri包含C语言扩展,用于将其Ruby代码连接到LibXML。当您安装gem时,它将针对系统上可用的libxml头进行编译,但在运行时它将动态链接到系统上可用的libxml共享对象。当这些版本不匹配时会收到此警告 - 例如,如果在安装Nokogiri之后在系统上升级libxml2。
解决这个问题的方法是指定LibXML Nokogiri应该针对哪个版本构建。您可以在~/.bundle/config
中进行设置,例如:
---
BUNDLE_BUILD__NOKOGIRI: --with-xml2-lib=/opt/libxml/lib--with-xml2-include=/opt/libxml/include/libxml2 --with-xslt-lib=/opt/libxml/lib --with-xslt-include=/opt/libxml/include
这基本上只是设置在构建Nokogiri扩展时要传递的编译标志,它允许您指定要使用的LibXML安装的位置。卸载Nokogiri并让Bundler在放置该配置(和正确的libxml2版本)之后重新安装它,所有这些都将按预期工作。