libxml-ruby не удалось загрузить на x86 64


У нас возникли проблемы с libxml-ruby gem на стороне сервера Возможно, потому что он использует архитектуру x86_64:

$ uname-a Linux ip-10-228-171-64 2.6.21.7-2.fc8xen-ec2-v1. 0 #1 SMP Вт 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

Переустановка драгоценного камня не помогает Может кто-нибудь подсказать, что делать?

5 5

5 ответов:

Попробуйте вернуть версию libxml-ruby gem к версии 1.1.3

У меня была точно такая же проблема в Centos....Вероятно, существует проблема с gem версии 1.1.4 и 64-битными машинами. Перейдите к rubyfourge и загрузите версию 1.1.3.

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

Скачать .gem an затем просто запустить:

gem install libxml-ruby-1.1.3.gem

На консоли. Я надеюсь, что это поможет

Для чего это стоит, у меня была та же проблема в ubuntu, и то, что сработало, было установить пакет libxml dev, как подробно здесь

Для Ubuntu используйте apt-get вместо yum: % sudo apt-get install libxml2-dev

Тогда установка libxml-ruby gem работает как шарм.

По какой-то причине в Linux, иногда gem путается и устанавливает DLL Windows для libxml-ruby. Вы можете проверить это, выполнив file на (Рубин Либ путь)/Рубин/драгоценные камни/1.8/драгоценные камни/в libxml-Рубин-1.1.4/Либ/libxml_ruby.так и он говорит, что libxml_ruby.так это среда предустановки Windows dll файлы.

Способ, который я нашел, чтобы обойти это, состоит в том, чтобы заставить платформу, т. е.:

gem install libxml-ruby --platform ruby

Мы столкнулись с той же проблемой сегодня, и оказалось, что rubygems установил dll Windows вместо ELF *.таким образом, мы запускаем довольно старую версию Rubygems (1.3.7), но переустановка gem каким-то образом решила проблему. Не уверен, что обнаружение платформы в этой версии Rubygems или что-то еще?