0

我刚刚安装了 Spree 电子商务 CMS,并没有太头疼。我真的不知道这条消息是什么意思。有人可以慢慢给我解释一下吗?

Nokogiri 出现在某种渲染器中?请向我解释一下,我认为 Rails 服务器处理了所有资产的获取和渲染?

LibXML 是一个 XML C 解析器。有人能解释一下 XML C 解析器是什么吗?

“建立反对”是什么意思?

我对 ruby​​ 已经很熟悉了,但我是部署新手。这种管理方面的事情完全是陌生的!谢谢你的协助!

4

1 回答 1

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 版本)后重新安装它,一切都会按预期工作。

于 2013-05-01T06:18:24.983 回答