5

我们在服务器端遇到 libxml-ruby gem 问题可能是因为它使用 x86_64 架构:

$ uname -a Linux ip-10-228-171-64 2.6.21.7-2.fc8xen-ec2-v1.0 #1 SMP Tue Sep 1 10:25:30 EDT 2009 x86_64 GNU/Linux

require 'libxml'
LoadError: /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/libxml-ruby-1.1.4/lib/libxml_ruby.so: invalid ELF header - /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/libxml-ruby-1.1.4/lib/libxml_ruby.so
from /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/libxml-ruby-1.1.4/lib/libxml_ruby.so
from /usr/local/ruby-enterprise/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
from /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
from /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/libxml-ruby-1.1.4/lib/libxml.rb:9
from /usr/local/ruby-enterprise/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /usr/local/ruby-enterprise/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
from /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /usr/local/ruby-enterprise/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:156:in `require'
from (irb):1

宝石版本 1.1.4

重新安装 gem 没有帮助 有人可以建议做什么吗?

4

5 回答 5

7

我在 Centos 中遇到了同样的问题……显然 gem 版本 1.1.4 和 64 位机器存在问题。前往ruby​​fourge并下载 1.1.3 版。

http://rubyforge.org/frs/?group_id=494

下载 .gem 然后运行:

gem install libxml-ruby-1.1.3.gem

在控制台上。我希望这有帮助

于 2010-08-04T15:45:15.840 回答
6

对于它的价值,我在 ubuntu 中遇到了同样的问题,并且有效的是安装 libxml 开发包,如此处详述

对于 Ubuntu,使用 apt-get 而不是 yum: % sudo apt-get install libxml2-dev

然后 libxml-ruby gem 的安装就像一个魅力。

于 2013-06-02T15:53:14.657 回答
3

尝试将您的 libxml-ruby gem 版本恢复到 1.1.3

于 2011-04-05T04:05:34.627 回答
1

出于某种原因,在 Linux 上,有时 gem 会感到困惑并为 libxml-ruby 安装 Windows DLL。您可以通过执行fileon (ruby lib path)/ruby/gems/1.8/gems/libxml-ruby-1.1.4/lib/libxml_ruby.so 来验证这一点,它说 libxml_ruby.so 是一个 Windows PE DLL。

我发现解决此问题的方法是强制平台,即:

gem install libxml-ruby --platform ruby

于 2010-12-14T15:13:47.180 回答
0

我们今天遇到了同样的问题,结果发现 ruby​​gems 安装了 Windows dll 而不是 ELF *.so。我们正在运行一个相当旧版本的 Rubygems (1.3.7),但是重新安装 gem 以某种方式解决了这个问题。不确定该版本的 Rubygems 中是否有平台检测?

于 2011-06-30T22:15:26.770 回答