在Linux上,如何解决警告:Nokogiri是针对LibXML版本2.8.0构建的,但动态加载了2.9.0?

Wil*_*rry 12 ruby linux ruby-on-rails nokogiri

Mac用户,请参阅: Mac用户并获得警告:Nokogiri是针对LibXML版本2.7.8构建的,但已动态加载2.7.3

我正在使用linux(openSUSE 12.3)并运行nokogiri -v显示:

WARNING: Nokogiri was built against LibXML version 2.8.0, but  dynamically loaded 2.9.0
# Nokogiri (1.6.0)
---
warnings:
- Nokogiri was built against LibXML version 2.8.0, but  dynamically loaded 2.9.0
nokogiri: 1.6.0
ruby:
  version: 2.0.0
  platform: x86_64-linux
  description: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
  engine: ruby
libxml:
  binding: extension
  source: packaged
  libxml2_path: /home/william/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.0/ports/x86_64-suse-linux/libxml2/2.8.0
  libxslt_path: /home/william/.rvm/gems/ruby-2.0.0-p247/gems/nokogiri-1.6.0/ports/x86_64-suse-linux/libxslt/1.1.26
  compiled: 2.8.0
  loaded: 2.9.0
Run Code Online (Sandbox Code Playgroud)

Dar*_*tle 23

这里隐含的问题似乎是"为什么我会收到这个警告,我该怎么办呢?"

您正在收到警告,因为Nokogiri是针对LibXML版本2.8.0构建的(它是一个很大程度上是本机扩展的gem,需要编译),并且您的系统已经将LibXML升级到版本2.9.0.

这是一个警告,而不是错误 - 在许多情况下,Nokogiri将继续使用较新版本的LibXML而不是构建它.

如果您遇到问题或者只是想安全起见,重建Nokogiri将解决问题 - 它将根据当前安装的LibXML版本构建.

  • 通过`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 /` (13认同)
  • 我已经多次宝石卸载nokogiri和宝石安装nokogiri,不工作,我不知道为什么.从nokogiri -v的输出来看,似乎nokogiri在.rvm中构建使用libxml,所以,有没有办法让它构建使用我的系统版本的libxml,或者如何将libxml版本升级到由rvm管理的2.9 (2认同)
  • 我很想把它标记为副本,因为这个问题已经被问到并回答了六次,每个都有不同的操作系统和版本变体.但是这个答案是唯一一个解释*为什么会发生这种情况的答案,并且可能会帮助其他人找到解决方案(就像OP一样).现在我希望我们可以将其他标记为重复或以其他方式组合它们.无论如何,给你+1. (2认同)