2010-05-26 4 views
5

Stiamo avendo problemi con libxml-rubino gemma sul lato server possibile perché utilizza l'architettura x86_64:libxml-ruby non è stato caricato a x86_64

$ uname -a IP di Linux-10-228-171- 64 2.6.21.7-2.fc8xen-EC2-v1.0 # 1 SMP mar set 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 

versione 1.1.4 gemma

reinstallazione del gioiello non aiuta Qualcuno può suggerire cosa fare?

+0

Ho provato a installare la versione 1.1.3, ma dà lo stesso errore – pahnin

risposta

2

provare ripristinando la versione gioiello libxml-ruby 1.1.3 per

+0

Ho provato a installare la versione 1.1.3, dà lo stesso errore – pahnin

7

Ho avuto esattamente lo stesso problema in un CentOS .... A parte questo, c'è un problema con le macchine gem versione 1.1.4 e 64 bit. Dirigiti verso rubyfourge e scarica la versione 1.1.3.

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

scaricare il .gem una poi basta eseguire:

gem install libxml-ruby-1.1.3.gem 

sulla console. Spero che questo aiuti

+0

Anche se la versione 1.1.4 funzionava correttamente sul mio Mac OS X locale a 64 bit, ho avuto lo stesso problema durante la distribuzione su Ubuntu Linux a 64 bit. Il downgrade alla versione 1.1.3 ha risolto questo problema per me. Grazie! – caike

1

Per qualche motivo su Linux, a volte gem viene confuso e installa la DLL di Windows per libxml-ruby. È possibile verificare questo facendo un file su (ruby lib path) /ruby/gems/1.8/gems/libxml-ruby-1.1.4/lib/libxml_ruby.so e si dice che libxml_ruby.so sia una DLL di Windows PE.

Il modo che ho trovato per ovviare a questo è quello di forzare la piattaforma, vale a dire:

gem install libxml-ruby --platform ruby

+0

Per quanto mi riguarda, ho dovuto eseguire 'gem install libxml-ruby -v 1.1.4 --platform x86_64' in quanto non esiste una versione in puro rubino. –

+0

Ho provato 'gem install libxml-ruby -v 1.1.4 --platform x86_64' ottenendo sempre lo stesso errore :( – pahnin

0

Abbiamo incontrato lo stesso problema oggi, e si è scoperto che rubygems aveva installato la DLL di Windows invece di un ELF * .so. Stiamo eseguendo una versione abbastanza vecchia di Rubygems (1.3.7), ma reinstallare la gemma in qualche modo ha risolto il problema. Non sei sicuro se il rilevamento della piattaforma in quella versione di Rubygems o qualcosa del genere?

6

Per quello che vale, ho avuto lo stesso problema in ubuntu, e che cosa ha funzionato è stato quello di installare il pacchetto dev libxml, come dettagliato here

per Ubuntu, utilizzare apt-get invece di yum: % sudo apt-get install libxml2-dev

quindi l'installazione della gemma libxml-ruby funziona come un incantesimo.

+0

Anche su lampone funziona il modo! – Automatico