Gem 求助 如何去掉 Nokogiri 这个 Gem 的 warning

williamherry · 2013年06月29日 · 最后由 williamherry 回复于 2013年07月01日 · 3950 次阅读

WARNING: Nokogiri was built against LibXML version 2.8.0, but has dynamically loaded 2.9.0

看着很烦,google 找到的都是针对 mac 的,试了几个不行

不知道有人遇到同样的问题没?

Warning 所说的意思是从文件系统里找到的 libxml 和编译时的 libxml 版本不符. 把 nokogiri 删了重装试试?

@5long 试过了,不行

我在 mac 用過很多次 nokogirl 了,沒有出現這個問題。

@Pitt 我也是最近升级了 ruby 才有这问题的

windows 装的二进制 gem 可能会有这个问题, 丢个 2.8.0 的 libxml2.dll 进 nokogiri.so 所在的目录应该就不警告了

#5 楼 @luikore 看 lz 头像明显用的不是 windows……

话说 nokogiri 有可能会自己下载 libxml 的源代码的, 但在正常的 linux 操作系统下是会链接到它下载的那个动态链接库的, 只有在 rhel 或者 centos 上可能会出现链错的奇葩现象?

可以尝试装个 libxml2-devel 之类的开发包, 然后再安装 nokogiri 应该就好了

刚试了下,删了重新编译安装一下就没这个问题了

@luikore 我用的 Linux, libxml2-devel 开发包已经是安装的 @aptx4869 你猜对了,我用的 openSUSE 重新编译安装是指用 gem 吗,试了不起作用

@hpyhacking 都是针对 mac 的,相应的目录我都没找到

#9 楼 @williamherry 你重新安装的应该还是装 binary 的,没有编译吧……

@aptx4869 我不知道他默认是编译还是直接 binary,但看他的输出好像是编译的

Fetching: nokogiri-1.6.0.gem (100%)
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.0
Parsing documentation for nokogiri-1.6.0
unable to convert "\x80" from ASCII-8BIT to UTF-8 for lib/nokogiri/nokogiri.so, skipping
Installing ri documentation for nokogiri-1.6.0
1 gem installed

如果这是安装的 binary,怎么做才可以让他编译安装?

#13 楼 @williamherry 看起来好像是编译的……奇怪了,难道 Gemfile 里用的是不同版本……

@aptx4869 Gemfile 里没有指定它,我看 Gemfile.lock 文件里,capybara 好像会用到它,版本 >= 1.3.3 xpath 也用到 ~> 1.3, 安装的版本是 1.6

@5long @Pitt @luikore @aptx4869 感谢各位的帮助,已经解决了

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/
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册