【问题标题】:Why isn't Nokogiri installing?为什么没有安装 Nokogiri?
【发布时间】:2014-05-11 02:58:27
【问题描述】:

我在安装 Nokogiri 时遇到问题。当我运行bundle installgem install nokogiri 时,安装失败。

我得到的错误是: (注意:此故障是由于使用 nokogiri.org 上的安装命令造成的)

Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
    ERROR: Failed to build gem native extension.

    /Users/roneesh/.rbenv/versions/1.9.3-p194/bin/ruby extconf.rb --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28/ --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib
Extracting libxml2-2.8.0.tar.gz into tmp//ports/libxml2/2.8.0... OK
Running 'configure' for libxml2 2.8.0... ERROR, review 'tmp//ports/libxml2/2.8.0/configure.log' to see what happened.
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

我尝试使用的命令是:

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.9.1/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.9.1/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.28/ --with-iconv-include=/usr/local/Cellar/libiconv/1.14/include --with-iconv-lib=/usr/local/Cellar/libiconv/1.14/lib

我已经用 brew 安装了 xml2、xslt 和 libiconv,并将它们的正确版本放在上面。还是没有解决。我唯一没有做的是来自源代码的 libiconv(我的 wget 命令由于某种原因无法正常工作)。

【问题讨论】:

  • 你为什么要传递所有这些选项?
  • 显示tmp//ports/libxml2/2.8.0/configure.log的内容

标签: ruby nokogiri


【解决方案1】:

您需要指定 nokogiri 来使用系统库,因此它不会尝试自己构建它们。

NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install

在这里找到答案:Error installing nokogiri 1.6.0 on mac (libxml2)

【讨论】:

    【解决方案2】:

    设置NOKOGIRI_USE_SYSTEM_LIBRARIES=1 对我也有用,但我必须先安装 gem 所依赖的本地库(我是用 Homebrew 完成的),然后告诉 gem 使用它们。

    总结:

    • 如果之前已安装,请卸载 gem:
      $ gem uninstall nokogiri

    • 使用 Homebrew 安装 libxml2libxsltlibiconv:
      $ brew install libxml2 libxslt libiconv

    • 安装 gem,指定要链接的库的路径:
      $ NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install nokogiri -- --use-system-libraries --with-iconv-dir="$(brew --prefix libiconv)" --with-xml2-config="$(brew --prefix libxml2)/bin/xml2-config" --with-xslt-config="$(brew --prefix libxslt)/bin/xslt-config"

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2019-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 2017-06-05
      • 1970-01-01
      相关资源
      最近更新 更多