Mountain Lion – LibXML和Nokogiri

我刚刚更新到OS X Mountain Lion,在使用rails和终端时我得到了以下内容。

WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.7.8 

我已经看过类似问题的其他答案,但它们似乎并没有阻止出现警告信息。

在我的Gemfile gem 'nokogiri'放在gem 'nokogiri'之上,为我修复了这个问题。

我的Gemfile中没有nokogiri,但它是Gemfile.lock中的依赖项,所以我明确地把它放在我的Gemfile中。

我在ruby 1.9.2上安装nokogiri gem时遇到了类似的问题。显然Apple升级了gcc …我用符号链接修复了这个问题,然后安装了gem就好了:

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2

如果你有一个Gemfile并且正在使用bundler,那么传递标志来安装gem通常是一个坏主意。 即使你不是,你也会使用自定义编译的libxml,你可能不会记得……! 我开始讨厌尝试让它工作,甚至酿造安装libxml2。

事实certificate,如果您重新安装(并因此重新编译)您正在使用的ruby版本(希望使用rvm),它将起作用。

因此,对于RVM用户:

  rvm list (gets your rubies - choose the one being used) rvm uninstall RUBY_VERSION rvm install SAME_RUBY_VERSION bundle (or gem install nokogiri) 

它为我做了伎俩。

在OS X 10.8.2(Mountain Lion)上使用Ruby 1.9.3-p194和Rails 3.2.11,启动rails c发出警告:

 WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.7.8 

卸载/安装nokogiri技巧对我不起作用。 解决方案更加简单……通过编辑Gemifile将’nokogiri’置于’pg’之上,完全避免了警告。

参考文献:

到目前为止列出的所有解决方案对我来说都不起作用。

所以,我做了一个brew uninstall libxml2它是版本libxml2 2.8.0,我猜我的os x已经预安装了libxml2版本2.7.8

然后我做了gem uninstall nokogiri然后gem install nokogiri

警告现在消失了。 但它是libxml2版本2.7.8而不是最新版本。 所以,我很感激,如果你建议一些解决方案适用于最新版本的libxml2。

我刚遇到这个问题。

我的问题很容易解决。

gem uninstall nokogiri

选择all versions

然后gem install nokogiri ,它消失了。

如果你正在使用家庭酿造,你可以brew updatebrew doctor 。 升级到山狮甚至取消了我的git和东西。 我通过在Xcode中安装cc工具并使用brew医生将其安装回来,以确保它在上述之前完成。

所以我最终使用以下命令:

 bundle config build.nokogiri --with-xml2-include=/usr/local/Cellar/libxml2/2.7.8/include/libxml2 --with-xml2-lib=/usr/local/Cellar/libxml2/2.7.8/lib --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/ 

然后做:

 gem uninstall nokogiri gem install nokogiri 

然后跑了

 bundle install 

我似乎没有什么能解决这个问题。

然后我进入xcode并安装了更新的命令行工具,然后gem uninstall nokogirigem install nokogiri ,它工作了!

升级ruby-build后

 brew update brew upgrade ruby-build 

我刚刚重新安装了ruby(最新版本)

 rbenv install 1.9.3-p194 

然后我安装了与我的项目相关的所有gem,包括nokogiri而没有进一步的问题。

 gem install bundler bundle