我刚刚安装了 Spree 电子商务 CMS,并没有太头疼。我真的不知道这条消息是什么意思。有人可以慢慢给我解释一下吗?
Nokogiri 出现在某种渲染器中?请向我解释一下,我认为 Rails 服务器处理了所有资产的获取和渲染?
LibXML 是一个 XML C 解析器。有人能解释一下 XML C 解析器是什么吗?
“建立反对”是什么意思?
我对 ruby 已经很熟悉了,但我是部署新手。这种管理方面的事情完全是陌生的!谢谢你的协助!
我刚刚安装了 Spree 电子商务 CMS,并没有太头疼。我真的不知道这条消息是什么意思。有人可以慢慢给我解释一下吗?
Nokogiri 出现在某种渲染器中?请向我解释一下,我认为 Rails 服务器处理了所有资产的获取和渲染?
LibXML 是一个 XML C 解析器。有人能解释一下 XML C 解析器是什么吗?
“建立反对”是什么意思?
我对 ruby 已经很熟悉了,但我是部署新手。这种管理方面的事情完全是陌生的!谢谢你的协助!
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 版本)后重新安装它,一切都会按预期工作。