Mountain Lion - LibXML&引入nokogiri

时间:2012-07-26 11:46:37

标签: ruby-on-rails ruby libxml2 homebrew osx-mountain-lion

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

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

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

8 个答案:

答案 0 :(得分:27)

我在ruby 1.9.2上安装nokogiri gem时遇到了类似的问题 显然苹果公司升级了gcc ......我用一个符号链接修复了这个问题,然后将gem安装得很好:

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

答案 1 :(得分:18)

gem 'nokogiri'放在我的Gemfile中gem 'pg'上面为我修复了这个问题。

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

答案 2 :(得分:14)

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

事实证明,如果您重新安装(并因此重新编译)您正在使用的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)

它为我做了诀窍。

答案 3 :(得分:9)

在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'之上,可以完全避免警告。

参考文献:

答案 4 :(得分:7)

到目前为止列出的所有解决方案都不适用于我。

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

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

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

答案 5 :(得分:6)

我刚遇到这个问题。

我的问题很容易解决。

gem uninstall nokogiri

已选择all versions

然后gem install nokogiri它就消失了。

如果您使用自制啤酒,可以brew updatebrew doctor。升级到山狮甚至取消了我的git和东西。我通过在Xcode中安装cc工具并使用brew doctor确认它是raring to go之前安装回来。

答案 6 :(得分:5)

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

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

答案 7 :(得分:2)

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

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