【问题标题】:libxml-ruby failed to load at x86_64libxml-ruby 在 x86_64 加载失败
【发布时间】:2010-05-26 18:48:35
【问题描述】:

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

$ unname -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

gem 版本 1.1.4

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

【问题讨论】:

  • 我已经尝试安装 1.1.3 版它也给出了同样的错误

标签: ruby elf libxml2 libxml-ruby


【解决方案1】:

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

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

下载 .gem 然后运行:

gem install libxml-ruby-1.1.3.gem

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

【讨论】:

  • 虽然 1.1.4 版在我的本地 64 位 Mac OS X 上运行良好,但在部署到 64 位 Ubuntu Linux 时我遇到了同样的问题。降级到 1.1.3 为我解决了这个问题。谢谢!
【解决方案2】:

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

对于 Ubuntu,使用 apt-get 代替 yum: % sudo apt-get install libxml2-dev

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

【讨论】:

  • 顺便说一句,也适用于覆盆子!
【解决方案3】:

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

【讨论】:

  • 我已经尝试安装 1.1.3 版它也给出了同样的错误
【解决方案4】:

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

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

gem install libxml-ruby --platform ruby

【讨论】:

  • 对我来说,我必须运行gem install libxml-ruby -v 1.1.4 --platform x86_64,因为没有纯 ruby​​ 版本。
  • 我试过gem install libxml-ruby -v 1.1.4 --platform x86_64 仍然得到同样的错误:(
【解决方案5】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多