2009-09-19 2 views
1

내가 Windows에서 Jruby의 nokogiri를 사용하는 방법?

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 
Windows 7에서 JRuby를 함께 노코 기리를 사용하려고 다음과 같은 오류를 받고 있어요 그러나 나는 workaround here 발견했습니다, JRuby에서의 네이티브 확장 (libxml2를) 호환성에 문제가있는 것 같다,하지만 libexslt.so를 찾을 수 없으며 어디에 넣어야할지 모르겠습니다. 누구든지 jruby + windows + nokogiri + libexslt를 사용해 본 경험이 있습니까? TIA

답변

1

발견 된 해결 방법은 UNIX 시스템 용입니다. .so 파일은 Windows의 DLL과 비슷한로드 가능한 모듈입니다. 그리고 Windows에서 소프트 링크 할 수 없으므로 (ln -s 명령) 해당 상황에는 적용되지 않습니다.

그럼에도 불구하고, 당신은 당신의 libxml2를, libxslt를, & libexslt 라이브러리를 찾을 수 노코 기리에서 같은 문제가 않습니다. JRuby 나 nokogiri를 사용하지 않기 때문에 어떻게 작동하는지 잘 모르겠지만, 가장 좋은 추측은 다음과 같습니다.

대부분 Windows 0122의 경우, libxml2libxslt의 Windows 바이너리 (DLL)가 필요합니다. ; 다른 관련 Windows 바이너리가 필요할 수 있으며 same place에서 사용할 수 있습니다. DLL을 경로의 어딘가에 설치하거나 JRuby 실행 파일과 동일한 디렉토리에 설치하는 것이 좋습니다 ("D : /jruby-1.3.1/bin"과 유사). (그것이 작동하지 않는다면 libxmlj와 같은 자바 원시 형식의 라이브러리가 작동 할 수도 있지만 의심 스럽다. 아마도 윈도우에 고유 한 라이브러리가 필요할 것이다.)

나는 당신을 길에 올릴 것으로 기대한다. 일하는 것.

1

경로에 xml2/libxslt dll이 필요합니다.

그러나 필자는 jruby-1.4.0RC2로 업데이트해야한다는 것을 알았습니다. GitHub의 트렁크에서

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

또는 설치 노코 기리 :

또한, 수동으로 다음 커밋을 적용 최신 노코 기리 1.3.3 &으로 업데이트해야합니다.

도움이되기를 바랍니다.

배경으로 유용한 링크 :

1

뿐만 아니라 Windows에서 실행할 수있는 순수 자바 버전이 지금있다.

gem install nokogiri --pre 

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