我刚刚更新到OS X Mountain Lion,在使用rails和终端时我得到以下内容。
WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.7.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 update
和brew 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 nokogiri
和gem install nokogiri
并且它有效了!