收到此错误:Centos的5.7 /红宝石/引入nokogiri - 获取NotFoundError xmlRelaxNGSetParserStructuredErrors
# rails c
FFI::NotFoundError: Function 'xmlRelaxNGSetParserStructuredErrors' not found in [libxml2.so, libxslt.so, libexslt.so]
attach_function at /home/prod/.rvm/rubies/jruby-1.6.5/lib/ruby/site_ruby/shared/ffi/library.rb:154
each at org/jruby/RubyArray.java:1612
attach_function at /home/prod/.rvm/rubies/jruby-1.6.5/lib/ruby/site_ruby/shared/ffi/library.rb:150
LibXML at /home/prod/.rvm/gems/[email protected]/gems/nokogiri-1.4.6-java/lib/nokogiri/ffi/libxml.rb:305
Nokogiri at /home/prod/.rvm/gems/[email protected]/gems/nokogiri-1.4.6-java/lib/nokogiri/ffi/libxml.rb:42
(root) at /home/prod/.rvm/gems/[email protected]/gems/nokogiri-1.4.6-java/lib/nokogiri/ffi/libxml.rb:41
require at org/jruby/RubyKernel.java:1038
我有工作在旧服务器上,但似乎缺少点什么的新的。红宝石和lib版本似乎是两个服务器,即在同一个:
红宝石-v =>的jruby 1.6.5(红宝石1.8.7-P330)(2011-10-25 9dcd388)(OpenJDK的64-位服务器VM 1.6.0_20)Linux的AMD64的Java]
其实 - 旧服务器上的Java版本是Oracle的版本...
Centos的5.7
# yum list | egrep "xslt|xml2"
libxml2.i386 2.6.26-2.1.12.el5_7.1 installed
libxml2.x86_64 2.6.26-2.1.12.el5_7.1 installed
libxml2-devel.i386 2.6.26-2.1.12.el5_7.1 installed
libxml2-devel.x86_64 2.6.26-2.1.12.el5_7.1 installed
libxml2-python.x86_64 2.6.26-2.1.12.el5_7.1 installed
libxslt.x86_64 1.1.17-2.el5_2.2 installed
libxslt-devel.x86_64 1.1.17-2.el5_2.2 installed
编辑: 只是尝试了Oracle Java版本来匹配旧的/工作箱,没有喜悦,虽然有一个稍微不同的错误,即:
$红宝石-v
jruby 1.6.5 (ruby-1.8.7-p330) (2011-10-25 9dcd388) (Java HotSpot(TM) Server VM 1.6.0_29) [linux-i386-java]
$轨道ç
LoadError: Could not open library 'xslt' : xslt: cannot open shared object file: No such file or directory. Could not open library 'libxslt.so' : libxslt.so: cannot open shared object file: No such file or directory
ffi_lib at /home/prod/.rvm/rubies/jruby-1.6.5/lib/ruby/site_ruby/shared/ffi/library.rb:82
collect at org/jruby/RubyArray.java:2318
EDIT2:
尝试更新机械化和引入nokogiri,但似乎有在机械化2饼干有关的差异 - 努力得到似乎应该解决这个问题的github版本。
EDIT3:
试过1.4.7引入nokogiri,但仍然给出错误。现在已经安装了1.5,安装好 - 只是它不适用于OSX的我的开发环境。可能需要提高nokogiri的错误 - 但必须编写一个测试程序来演示该问题。
感谢 - 一直避免从1.0.0的机械化升级到2.0.0(+) - 这可能是为什么nokogiri是旧的。可能是我咬这颗子弹的时间。 “nm /usr/lib/libxml2.so”给了我“没有符号” - 也许它是CentOS/.so文件中的一个不同选项:( –