Nokogiri gem无法在OS X Mavericks中安装

use*_*456 6 ruby gem nokogiri osx-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.
Run Code Online (Sandbox Code Playgroud)

但是,查看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
Run Code Online (Sandbox Code Playgroud)

我有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.我真的想回到实际开发阶段.

有人可以帮忙吗?

Edu*_*rdo 21

NOKOGIRI_USE_SYSTEM_LIBRARIES=1在实际安装gem之前进行设置对我来说是个窍门.

总结:

  • 如果以前安装过,请卸载gem:
    $ gem uninstall nokogiri

  • 使用自制软件来安装libxml2,libxslt并且libiconv如果需要的话:
    $ 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"

  • +1`NOKOGIRI_USE_SYSTEM_LIBRARIES = 1 gem install nokogiri`足以让我安装这个.这真的应该修复,安装不应该这么困难.我使用真正的nokogiri锯,如dozuki锯和使用它们切割燕尾丝不是很麻烦. (5认同)