关于ruby:Nokogiri gem无法在OS X Mavericks中安装

Nokogiri gem fails to install in OS X Mavericks

安装失败显示:

1
2
3
4
5
6
7
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,会显示以下错误:

1
2
3
4
5
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,每个都是链接的。
我尝试在没有ARCHFLAG的情况下安装所有这些.bash_profile。

我已经按照我发现的方式安装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指定要链接的库的路径:
    <5233>


  • 作为一个独立的解决方案,我将这个ruby脚本作为一个要点,应该适用于任何最近的Mac OS X / Homebrew安装。
  • 你基本上只是依靠Homebrew的库而不是过时的Apple库。简单。
  • 您可以通过传递bundle作为参数来配置和安装Bundler(而不是gem)。

检查一下,请随时提供帮助 - 也许我们可以将其归结为一个脚本来解决所有问题!


来自github页面
首先,你应该:
xcode-select --install
然后重新安装nokogiri。
这对我有用,而另一个建议却没有。希望这有助于其他人。


这对我有用:

  • 如果您还没有这样做,请安装XCode开发人员工具:$ xcode-select --install
  • 使用homebrew安装(或重新安装)libxml2,libxslt和libiconv:$ brew install libxml2 libxslt libiconv
  • 安装nokogiri:gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv
  • 我在未合并的拉取请求中找到了我需要的解决方案来更新Nokogiri教程。我建议如果其他人遇到此问题并且已经用尽了解决方案,请检查拉取请求列表以查看是否有人提交了Nokogiri教程页面上的说明更新。


    • 使用相应的XCode命令行工具检查HomeBrew是否已正确安装。

    酿造医生

    • 您也可以通过XCode>首选项进行检查

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

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