安装失败,显示:
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,并且每个都是链接的。 我已尝试在没有ARCHFLAG的情况下安装所有这些.bash_profile。
我也按照我发现的方式安装apple-gcc42并进行链接。
我已尝试通过将路径传递到/ usr / local / Cellar /中的libxml2,libxslt和libiconv来安装nokogiri,但安装仍然失败,并出现与上述相同的错误。
我已经浪费了至少一天的时间 - 只是试图安装一个Ruby gem。我真的很想回到实际开发阶段。
有人可以帮忙吗?
答案 0 :(得分:21)
在实际安装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"
答案 1 :(得分:2)
gem
作为参数来配置和安装Bundler(而不是bundle
)。检查一下,请随时提供帮助 - 也许我们可以将其归结为一个脚本来解决所有问题!
答案 2 :(得分:0)
安装了有效的命令行工具后,我能够解决OSX Maverick升级后遇到的nokogiri错误。
还发现,在OS X Mountain Lion升级到Maverick之后,一些'brew'软件包已经过时了。 (例如qt,postgresql)
答案 3 :(得分:0)
这对我有用:
$ xcode-select --install
$ brew install libxml2 libxslt libiconv
gem install nokogiri -- --with-iconv-dir=/usr/local/opt/libiconv
我在unmerged pull request找到了我需要的解决方案来更新Nokogiri教程。我建议如果其他人遇到此问题并且已经用尽了解决方案,请检查pull request list以查看是否有人提交了Nokogiri教程页面上的说明更新。
答案 4 :(得分:0)
来自github page 首先,你应该: xcode-select --install 然后重新安装nokogiri。 这对我有用,而另一个建议没有。希望这有助于其他人。