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

在重新安装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

我该如何解决?

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

我找到了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

 gem uninstall nokogiri bundle install 

更好:

 gem pristine nokogiri 

注意:

升级系统和库更改时,这将反复发生。

请注意,在@Davidspost中链接会干扰您的构建工具并链接到您的操作系统(如果您使用brew,这很可能不是您想要的),但您可以执行上面的每个命令, 除了省略’brew链接’线条和一切仍然会很好,例如:

 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/ 

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

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

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

 gem uninstall nokogiri brew update brew install libxml2 brew update libxml2 brew link libxml2 gem install nokogiri