2009-06-05 5 views
0

これは私を夢中にしています。私はこれを毎回実行してから、新しいUbuntu/Debianサーバを実行します。 基本的に私はexecをすることができません! 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. がexecのことを確認してください!メソッドがソースにあります。
  2. 両方のgemリポジトリが古いnet-sshバージョンでないことを確認してください。 gem listには幾分奇妙なものがあります。ディレクトリに移動してそこにあるものを見るだけで簡単です。
  3. requireスクリプト内の現在のバージョン。

    require 'rubygems'

    gem 'net-ssh', '=2.0.11'

    require 'net-ssh'

+0

サラに感謝します!宝石のバージョンは多くの手伝いをする!私はまだ/usr/lib/ruby/gems/1.8/gemsに1つのnet-sshリポジトリが見つかりました....しかし、私はlibnet-ssh-ruby1.8を見つけましたが、これはnet :: sshクラスをオーバーライドする可能性があります – eyberg

関連する問題