Nokogiri是针对LibXML版本2.9.1构建的,但已动态加载2.8.0

时间:2015-04-22 14:19:14

标签: ruby-on-rails ruby rake nokogiri libxml2

我想跑

bundle exec rake fixtures:populate_from_db

在CentOS上,但我收到以下警告信息:

WARNING: Nokogiri was built against LibXML version 2.9.1, but has dynamically loaded 2.8.0
rake aborted!

~/.bundle/config文件包含:

BUNDLE_BUILD__NOKOGIRI: "--with-xml2-include=/opt/local/include/libxml2 --with-xml2-lib=/opt/local/lib --with-xslt-dir=/opt/local"

我应该如何再次编译Nokogiri 2.8.0版本的LibXML?

6 个答案:

答案 0 :(得分:4)

尝试跑步:

gem update --system& gem pristine nokogiri

为我工作。

答案 1 :(得分:1)

以下步骤解决了我的问题

gem uninstall nokogiri # remove nokogiri
NOKOGIRI_USE_SYSTEM_LIBRARIES=1 bundle install

结合来自的解决方案 https://simonharrer.wordpress.com/2013/05/01/fixing-nokogiri-warning-after-ubuntu-upgrade/https://github.com/sparklemotion/nokogiri/wiki/What-to-do-if-libxml2-is-being-a-jerk

答案 2 :(得分:0)

试试这个:

gem install nokogiri -- --with-xml2-include=/usr/include/libxml2/libxml --with-xml2-lib=/usr/lib64/ --with-sxlt-include=/usr/include/libxslt --with-xslt-lib=/usr/lib64/

答案 3 :(得分:0)

我知道这听起来很愚蠢,但请尝试将Nokogiri放在Gemfile的顶部。这适用于其他宝石在原生扩展上发生冲突的某些情况

答案 4 :(得分:0)

我在Nokogiri的v1.5.11上锁定了一个旧的应用程序,我无法在Debian 9上摆脱这个问题,直到我将Nokogiri升级到v1.6.8.1

答案 5 :(得分:0)

摘要

gem update --system & gem pristine nokogiri
gem install nokogiri

(建立在@Jonny answer上-谢谢

详细信息

我的错误与标题中的错误相同。
运行他的命令后,运行ruby脚本失败,并显示以下错误:

/Users/username/.rvm/rubies/ruby-2.4.0/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- nokogiri (LoadError)
from /Users/username/.rvm/rubies/ruby-2.4.0/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:92:in `require'
from my_ruby_script.rb:3:in `<main>'

然后我再次添加以运行gem install nokogiri,一切恢复正常。