Domanda

sto ottenendo il seguente errore quando si tenta di utilizzare Nokogiri con JRuby su Windows 7

D:\code\h4>jruby -e "require 'rubygems'; require 'nokogiri'"
D:/jruby-1.3.1/bin/../lib/ruby/1.8/ffi/library.rb:18:in `ffi_lib': Could not ope
n any of [xml2, xslt, exslt] (LoadError)
        from D:/jruby-1.3.1/lib/ruby/gems/1.8/gems/nokogiri-1.3.3-java/lib/nokog
iri/ffi/libxml.rb:5
        from D:/jruby-1.3.1/lib/ruby/gems/1.8/gems/nokogiri-1.3.3-java/lib/nokog
iri/ffi/libxml.rb:31:in `require'
        from D:/jruby-1.3.1/bin/../lib/ruby/site_ruby/1.8/rubygems/custom_requir
e.rb:31:in `require'
        from D:/jruby-1.3.1/lib/ruby/gems/1.8/gems/nokogiri-1.3.3-java/lib/nokog
iri.rb:10
        from D:/jruby-1.3.1/lib/ruby/gems/1.8/gems/nokogiri-1.3.3-java/lib/nokog
iri.rb:36:in `require'
        from D:/jruby-1.3.1/bin/../lib/ruby/site_ruby/1.8/rubygems/custom_requir
e.rb:36:in `require'
        from -e:1

sembra essere un problema con le estensioni native (libxml2) l'incompatibilità di JRuby, però ho trovato un soluzione qui , ma non riusciva a trovare libexslt.so e non sono sicuro dove metterlo. Qualcuno ha un'esperienza di successo di utilizzare JRuby + windows + nokogiri + libexslt? TIA

È stato utile?

Soluzione

La soluzione che avete trovato è per un sistema UNIX; il file .so è un modulo caricabile, simile a una DLL in Windows. E non si può softlink in Windows (il comando ln -s), in modo che non si applica nella tua situazione.

Tuttavia, si ha lo stesso problema in che nokogiri non riesce a trovare il tuo libxml2, libxslt, e le librerie libexslt . Dal momento che io non uso JRuby o nokogiri, io non sono davvero sicuro di come sarà il lavoro, ma la mia ipotesi migliore è questa:

Molto probabilmente, avete bisogno di binari Windows (DLL) di libxml2 e libxslt al minimo ; altri binari di Windows correlate possono essere necessari e sono disponibili presso la stesso posto . Vorrete le DLL installati da qualche parte nel vostro percorso, o meglio ancora nella stessa directory del file eseguibile JRuby (simile a "D: /jruby-1.3.1/bin"). (Se questo non funziona, forse una forma Java nativo delle librerie come libxmlj potrebbe funzionare, ma ne dubito -. Probabilmente è necessario quelle native per Windows)

Mi aspetto che vi porterà sul vostro modo di lavorare.

Altri suggerimenti

V'è ora una versione di Java puro che può essere eseguito su Windows pure.

gem install nokogiri --pre

Trovato qui

https://github.com/tenderlove/nokogiri/wiki/pure-java-nokogiri-for-jruby

E 'vero che è necessario DLL xml2 / libxslt nel tuo percorso.

Tuttavia, ho ritenuto necessario aggiornare JRuby-1.4.0RC2 (per alcuni miglioramenti FFI credo).

Inoltre, è necessario aggiornare all'ultima nokogiri 1.3.3 & manualmente applicare il seguente impegno:

http://github.com/tenderlove/nokogiri/commit/0555c69e70083a6368b563f18da2c8d5416515cc

o installare nokogiri dal tronco github.

Spero che questo sia utile.

link utile sfondo:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top