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之前设置
总结:
-
如果以前安装过,请卸载gem:
$ gem uninstall nokogiri -
如果需要,使用Homebrew安装
libxml2 ,libxslt 和libiconv :
$ brew install libxml2 libxslt libiconv -
安装gem指定要链接的库的路径:
<5233>
- 作为一个独立的解决方案,我将这个ruby脚本作为一个要点,应该适用于任何最近的Mac OS X / Homebrew安装。
- 你基本上只是依靠Homebrew的库而不是过时的Apple库。简单。
-
您可以通过传递
bundle 作为参数来配置和安装Bundler(而不是gem )。
检查一下,请随时提供帮助 - 也许我们可以将其归结为一个脚本来解决所有问题!
来自github页面
首先,你应该:
xcode-select --install
然后重新安装nokogiri。
这对我有用,而另一个建议却没有。希望这有助于其他人。
这对我有用:
我在未合并的拉取请求中找到了我需要的解决方案来更新Nokogiri教程。我建议如果其他人遇到此问题并且已经用尽了解决方案,请检查拉取请求列表以查看是否有人提交了Nokogiri教程页面上的说明更新。
- 使用相应的XCode命令行工具检查HomeBrew是否已正确安装。
酿造医生
- 您也可以通过XCode>首选项进行检查
通过安装有效的命令行工具,我能够解决OSX Maverick升级后遇到的nokogiri错误。
还发现一些'brew'软件包在OS X Mountain Lion到Maverick升级之后已经过时了。 (例如qt,postgresql)