Nokogiri gem无法在OS X Mavericks中安装



安装失败显示:

checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
checking for libiconv_open() in -liconv... no
libiconv is missing.

然而,查看nokogiri的mkmf.log,会显示以下错误:

ld: warning: ignoring file /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxslt/1.1.28/lib/libxslt.dylib
ld: warning: ignoring file /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libxml2/2.9.1/lib/libxml2.dylib
ld: warning: ignoring file /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib, **file was built for x86_64 which is not the architecture being linked (i386)**: /usr/local/Cellar/libiconv/1.14/lib/libiconv.dylib

我安装了xcode及其命令工具。我的~/.bash_profile强制进行64位编译:export ARCHFLAGS="-arch x86_64">

我通过Homebrew安装了libxml2、libxslt和libiconv,它们都是链接的。我试过在.bash_profile.中安装所有这些,但没有ARCHFLAG

我还根据我找到的操作指南,制作并安装了apple-gcc42并进行了链接。

我曾尝试通过在/usr/local/Cellar/中传递libxml2、libxslt和libiconv的路径来安装nokogiri,但安装仍然失败,出现了与上面相同的错误。

我在这上面浪费了至少一天的时间——只是想安装一个Ruby gem。我真的很想回到实际发展中。

有人能帮忙吗?

在实际安装gem之前设置NOKOGIRI_USE_SYSTEM_LIBRARIES=1对我来说很有用

总结:

  • 如果以前安装过,请卸载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"

  • 使用适当的XCode命令行工具检查HomeBrew是否正确安装

冲泡刮刀

  • 您也可以通过XCode>Preferences进行检查

安装了有效的命令行工具后,我能够解决OSX Maverick升级后遇到的nokogiri错误。

还发现,在OS X Mountain Lion升级到Maverick后,一些"brew"软件包已经过时。(例如qt、postgresql(

以下是对我有效的方法:

  1. 如果您还没有这样做,请安装XCode开发人员工具:$ xcode-select --install
  2. 使用自制程序安装(或重新安装(libxml2、libxslt和libiconv:$ brew install libxml2 libxslt libiconv
  3. 安装nokogiri:gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv

我在一个未合并的pull请求中找到了我需要的解决方案,以更新Nokogiri教程。我建议,如果其他人遇到这个问题,并且已经用尽了这里的解决方案,请查看拉取请求列表,看看是否有人提交了对Nokogiri教程页面上的说明的更新。

来自github页面首先,您应该:xcode select--install然后重新安装nokogiri。这对我有效,而另一个建议则无效。希望这能帮助其他人。

相关内容

  • 没有找到相关文章

最新更新