18

全新安装 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

我该如何解决?

4

6 回答 6

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

于 2012-07-12T12:58:46.113 回答
13

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

于 2012-07-26T01:44:15.933 回答
13
gem uninstall nokogiri
bundle install

更好:

gem pristine nokogiri

笔记:

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

于 2012-11-29T17:51:44.640 回答
4

请注意,@Davids 帖子中的链接会干扰您的构建工具并链接到您的操作系统(如果您使用的是 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/
于 2013-02-07T05:34:11.490 回答
3

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

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

于 2013-03-19T05:29:20.837 回答
0

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

gem uninstall nokogiri

brew update
brew install libxml2
brew update libxml2
brew link libxml2

gem install nokogiri
于 2012-12-23T11:30:11.927 回答