2009-06-05 4 views
0

Это сводит меня с ума. Я сталкиваюсь с этим каждый раз на новом сервере ubuntu/debian. В принципе, я не могу сделать exec! через сеть-ssh. Обратите внимание, что я могу потребовать «net/ssh» отлично.Что делать, когда Net-SSH жалуется на exec! метод отсутствует?

образец кода

require 'rubygems' 
require 'net/ssh' 

Net::SSH.start('my.random.box', 'myuser', :forward_agent => "true") do |ssh| 

    #output = ssh.exec("hostname") 
    #puts output 

    output = ssh.exec!("hostname") 
    puts stdout 
end 

соответствующая система окружающей среды Информация

[email protected]:~$ gem list | grep net-ssh 
net-ssh (2.0.11) 
[email protected]:~$ which ruby 
/usr/bin/ruby 
[email protected]:~$ which gem 
/usr/bin/gem 


[email protected]:~$ gem environment 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.4 
    - RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux] 
    - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8 
    - RUBY EXECUTABLE: /usr/bin/ruby1.8 
    - EXECUTABLE DIRECTORY: /usr/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-linux 
    - GEM PATHS: 
    - /usr/lib/ruby/gems/1.8 
    - /home/me/.gem/ruby/1.8 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - :sources => ["http://gems.rubyforge.org/", "http://gems.github.com"] 
    - REMOTE SOURCES: 
    - http://gems.rubyforge.org/ 
    - http://gems.github.com 
+0

Можете ли вы опубликовать точную ошибку вы получаете, когда вы запускаете скрипт, пожалуйста? –

ответ

1

Пару вещей, чтобы попробовать:

  1. Убедитесь, что ехес! метод находится в источнике.
  2. Проверьте оба хранилища драгоценных камней, чтобы убедиться, что там нет более старой версии net-ssh. gem list имеет некоторые странности; проще всего просто зайти в каталоги и посмотреть, что там.
  3. require Текущая версия в вашем скрипте.

    require 'rubygems'

    gem 'net-ssh', '=2.0.11'

    require 'net-ssh'

+0

спасибо большое Сара! версия gem помогает много! Я все еще нашел одно net-ssh repo в /usr/lib/ruby/gems/1.8/gems .... хотя я нашел libnet-ssh-ruby1.8, который мог бы переопределить класс net :: ssh – eyberg