我似乎处于一种沮丧的递归循环中.我正在尝试“捆绑安装”一个项目,但结果是:
An error occurred while installing nokogiri (1.6.6.2), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.6.2'` succeeds before bundling.
所以我试试:
$gem install nokogiri -v '1.6.6.2'
Building native extensions. This could take a while...
Successfully installed nokogiri-1.6.6.2
Parsing documentation for nokogiri-1.6.6.2
Done installing documentation for nokogiri after 2 seconds
1 gem installed
都好!除了当我运行“捆绑安装”时,我再次被告知我需要首先安装“gem install nokogiri -v’1.6.6.2”. AHHHHH.
mkmf.log文件表明这是libxml2的一个问题(惊喜).
conftest.c:3:10: fatal error: 'libxml/xmlversion.h' file not found
#include <libxml/xmlversion.h>
^
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: #include <libxml/xmlversion.h>
4:
5: #if LIBXML_VERSION < 20621
6: #error libxml2 is way too old
7: #endif
/* end */
因此,搜索libxml2(使用“sudo find / -name libxml2”)会显示这些目录,所有目录都至少为2.9.0或更高:
> /usr/include / libxml2
> /usr/local/Cellar / libxml2
> /usr/local/opt / libxml2
那么,是不是找不到libxml2的问题?如果是这样,我如何获得bundle install以意识到已经安装了nokogiri,或者至少能够以“gem install”的方式安装它?虽然我想为此找到解决方案,但我真的很想学习“幕后”的内容,以便我将来可以解决问题.
最佳答案 在我的Mac OS X上,我运行了这些命令,问题得到解决.
brew unlink gcc-4.2 # you might not need this step
gem uninstall nokogiri
xcode-select --install
gem install nokogiri