2009-06-05 3 views
0

이것은 나를 미치게합니다. 새로운 우분투/데비안 서버에서 매번 실행됩니다. 기본적으로 나는 임원을 할 수 없다! net-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. 두 개의 gem 저장소를 모두 확인하여 이전 net-ssh 버전이 없는지 확인하십시오. gem list에는 몇 가지 기이함이 있습니다. 전화 번호부에 들어가서 무엇이 있는지 직접 확인하는 것이 더 간단합니다.
  3. require 스크립트의 현재 버전. 스크립트를 실행할 때

    require 'rubygems'

    gem 'net-ssh', '=2.0.11'

    require 'net-ssh'

+0

많은 Sarah에게 감사합니다! 보석 버전은 많은 도움이됩니다 !!! 나는 /usr/lib/ruby/gems/1.8/gems에 하나의 net-ssh repo를 발견했다 .... net : ssh 클래스를 오버라이드 할 수있는 libnet-ssh-ruby1.8을 찾았지만 – eyberg