警告:Nokogiri是针对LibXML 2.7.3版本构建的,但动态加载了2.7.8

时间:2012-07-12 12:58:46

标签: ruby-on-rails nokogiri osx-mountain-lion

在重新安装Mac OS X 10.8 Mountain Lion之后,在安装了Ruby 1.9.3和Ruby on Rails 3.2.6之后,我启动了Rails控制台,并收到了此警告消息:

  

警告:Nokogiri是针对LibXML 2.7.3版本构建的,但有   动态加载2.7.8

我该如何解决?

6 个答案:

答案 0 :(得分:13)

我找到了Lion的一些修复程序,但Mountain Lion却没有。尽管如此,我已经尝试过这个并且它有效:

gem uninstall nokogiri libxml-ruby

brew update
brew uninstall libxml2
brew install libxml2 --with-xml2-config
brew link libxml2

brew install libxslt
brew link libxslt

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2/ --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

来源(狮子会):https://gist.github.com/1349681

答案 1 :(得分:13)

我重新安装了Ruby,修复了它。能够使用内置库。

答案 2 :(得分:13)

gem uninstall nokogiri
bundle install

更好:

gem pristine nokogiri

注意:

升级系统和库更改时会反复发生这种情况。

答案 3 :(得分:4)

请注意,在@Davids帖子中进行链接会干扰您的构建工具并链接到您的操作系统(如果您正在使用brew,这很可能不是您想要的),但您可以执行上面的每个命令除了省略'brew link'行,所有内容仍然可以正常构建,例如:

gem uninstall nokogiri libxml-ruby
brew update
brew uninstall libxml2
brew install libxml2 --with-xml2-config
brew install libxslt

gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/2.8.0/include/libxml2/ --with-xml2-lib=/usr/local/Cellar/libxml2/2.8.0/lib/ --with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26/

答案 4 :(得分:3)

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

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

答案 5 :(得分:0)

根据@David的回答,以下步骤对我来说已经足够了。没有编译器标志和自定义路径。

gem uninstall nokogiri

brew update
brew install libxml2
brew update libxml2
brew link libxml2

gem install nokogiri