【发布时间】:2012-07-12 05:39:06
【问题描述】:
在全新安装 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-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
我该如何解决?
【问题讨论】:
标签: ruby-on-rails nokogiri osx-mountain-lion
我找到了一些针对 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/
【讨论】:
我重新安装了 Ruby,修复了它。能够使用内置库。
【讨论】:
rvm uninstall 1.9.3-p194。然后rvm install 1.9.3。所有以前的宝石仍然存在。 gem install nokogiri。有效!
gem uninstall nokogiri
bundle install
更好:
gem pristine nokogiri
注意:
当您升级系统和更改库时,这种情况会反复发生。
【讨论】:
根据@David 的回答,以下步骤对我来说已经足够了。没有编译器标志和自定义路径。
gem uninstall nokogiri
brew update
brew install libxml2
brew update libxml2
brew link libxml2
gem install nokogiri
【讨论】:
请注意,@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/
【讨论】:
gem install nokogiri -- --with-xml2-include=/usr/local/Cellar/libxml2/[VERSION]/include/libxml2/ --with-xml2-lib=/usr/local/Cellar/libxml2/[VERSION]/lib/ --with-xslt-dir=/usr/local/Cellar/libxslt/[VERSION]/
在我的 Gemfile 中将 gem 'nokogiri' 放在 gem 'pg' 上方为我解决了这个问题。
我的 Gemfile 中没有 nokogiri,但它是 Gemfile.lock 中的一个依赖项,所以我明确地将它放在我的 Gemfile 中。
【讨论】: