Проблема с ruby ​​savon jruby

Я пытаюсь использовать savon Gem для взаимодействия с веб-сервисами. Итак, я установил его, и кажется, что установка прошла нормально:

gem list savon
*** LOCAL GEMS ***
savon (1.2.0)

Я могу проверить это с помощью простой команды:

ruby -rubygems -e 'require "savon"'

(У меня больше нет ошибок благодаря этому совету http://wiki.mccune.org.uk/index.php/Backtrack)

Проблема возникает, когда я хочу использовать скрипт .rb, для которого требуется savon:

jruby -S buby -i -B /pentest/web/burpsuite/burpsuite_v1.4.01.jar -r /home/fred/soapAtk2.rb 

/usr/lib/jruby//lib/ruby/site_ruby/shared/builtin/javasupport/core_ext/object.rb:75 warning: already initialized constant StartBurp
Your JRE appears to be OpenJDK. 
Burp has not been fully tested on this platform and you may experience problems.
Loading: "/home/fred/soapAtk2.rb"

/usr/lib/jruby//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in **`require': no such file to load -- savon** (LoadError)
    from /usr/lib/jruby//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /home/fred/soapAtk2.rb:3
    from /home/fred/soapAtk2.rb:31:in `require'
    from /usr/lib/jruby//lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /usr/lib/jruby/lib/ruby/gems/1.8/gems/buby-1.3.1-java/bin/buby:63
    from /usr/lib/jruby/lib/ruby/gems/1.8/gems/buby-1.3.1-java/bin/buby:63:in `each'
    from /usr/lib/jruby/lib/ruby/gems/1.8/gems/buby-1.3.1-java/bin/buby:63
    from /usr/lib/jruby/lib/ruby/gems/1.8/gems/buby-1.3.1-java/bin/buby:19:in `load'
    from /usr/lib/jruby/bin/buby:19

Кажется, есть проблема с окружающей средой, но я не могу понять, как ее решить :-/

ruby -r rubygems -e "p Gem.path"

["/root/.gem/ruby/1.9.2", "/usr/lib/ruby/gems/1.9.2"]

# gem content savon

/var/lib/gems/1.9.2/gems/savon-1.2.0/.gitignore

/var/lib/gems/1.9.2/gems/savon-1.2.0/.rspe
...
...

Другая информация

# ruby -v
ruby 1.9.2dev (2010-07-02) [x86_64-linux]
# gem -v
1.3.7

У кого-нибудь была такая же проблема (я запускаю последний выпуск backtrack5)

Спасибо'


person user1723363    schedule 05.10.2012    source источник


Ответы (1)


Похоже, у вас есть два рубина, системный (1.9.2dev) и jruby. Когда вы запускаете ruby или gem, он выбирает системный ruby, тогда как команда jruby -S buby выбирает jruby.

Если вы запустите:

jruby -rubygems -e 'require "savon"'

это, скорее всего, потерпит неудачу.

Чтобы установить savon на экземпляр jruby, запустите:

jruby -S gem install savon

Это должно решить проблему.

person Sébastien Le Callonnec    schedule 06.10.2012