Pregunta

Estoy recibiendo el siguiente error al intentar utilizar Nokogiri con jruby en 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

parece ser un problema con extensiones nativas (libxml2) incompatibilidad de jruby, sin embargo he encontrado una solución aquí , pero no pudo encontrar libexslt.so y no estoy seguro de dónde ponerlo. ¿Alguien tiene una experiencia exitosa del uso de ventanas jruby + + + nokogiri libexslt? TIA

¿Fue útil?

Solución

La solución que encontró es para un sistema UNIX; el archivo .so es un módulo de carga, similar a un archivo DLL en Windows. Y no se puede Softlink en Windows (el comando ln -s), de modo que no se aplica en su situación.

Sin embargo, usted tiene el mismo problema que en nokogiri no puede encontrar su libxml2, libxslt, y bibliotecas libexslt . Puesto que yo no uso o JRuby nokogiri, realmente no estoy seguro de lo que va a trabajar, pero mi mejor conjetura es la siguiente:

Lo más probable es que necesita binarios de Windows (DLL) de libxml2 y libxslt como mínimo ; otros binarios de Windows relacionados pueden ser necesarios y están disponibles en el mismo lugar . Usted querrá las DLL instalados en algún lugar de su camino, o mejor aún en el mismo directorio como el ejecutable JRuby (se parece a "D: /jruby-1.3.1/bin"). (Si eso no funciona, tal vez una forma de Java nativo de las bibliotecas como libxmlj podría funcionar, pero lo dudo. - es probable que tenga los nativos de Windows)

espero que le permitirá estar en su camino al trabajo.

Otros consejos

En la actualidad existe una versión de Java pura que se puede ejecutar en Windows también.

gem install nokogiri --pre

Encontrados aquí

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

Es cierto que necesita los archivos DLL xml2 / libxslt en su camino.

Sin embargo, he encontrado que es necesario actualizar a jruby-1.4.0RC2 (para algunas mejoras FFI creo).

Además, tenga que actualizar a la última nokogiri 1.3.3 y manualmente aplicar el siguiente compromiso:

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

o instalar nokogiri de github tronco.

Espero que esto sea útil.

enlaces fondo útil:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top