Nokogiri宝石未能在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安装所有这些。
我也酿造安装苹果gcc42和链接,根据我怎么找到。
我尝试通过在/ usr / local / Cellar /中传递libxml2,libxslt和libiconv的路径来安装nokogiri,但安装仍然失败,并且出现与上述相同的错误。
我至少浪费了一天的时间 - 只是想安装一个Ruby gem。 我真的很想回到真正的发展。
任何人都可以帮忙吗?
在实际安装gem之前设置NOKOGIRI_USE_SYSTEM_LIBRARIES=1
为我做了诀窍。
总结:
如果以前安装,请卸载gem:
$ gem uninstall nokogiri
如果需要,使用Homebrew安装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"
bundle
作为参数进行配置并使用Bundler(而不是gem
)进行配置和安装。 检查出来,请随时贡献 - 也许我们可以将它归结为一个脚本来修复它们!
酿造医生
通过安装有效的命令行工具,我能够解决OSX Maverick升级后遇到的nokogiri错误。
还发现一些'brew'软件包在OS X Mountain Lion升级到Maverick后已经过时了。 (如qt,postgresql)
链接地址: http://www.djcxy.com/p/61059.html