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 update
和brew 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 nokogiri
和gem install nokogiri
,它工作了!
升级ruby-build后
brew update brew upgrade ruby-build
我刚刚重新安装了ruby(最新版本)
rbenv install 1.9.3-p194
然后我安装了与我的项目相关的所有gem,包括nokogiri而没有进一步的问题。
gem install bundler bundle