ما يجب القيام به عندما تشكو Net-SSH من Exec! طريقة مفقودة؟
سؤال
هذا يقودني للجنون. لقد واجهت هذا كل الآن ثم على خادم أوبونتو / ديبيان جديد. أساسا لا أستطيع أن أفعل exec! من خلال net-ssh. ملاحظة، أنه يمكنني أن أطلب "صافي / SSH" بشكل جيد تماما.
عينة من الرموز
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
معلومات بيئة النظام ذات الصلة
me@box:~$ gem list | grep net-ssh
net-ssh (2.0.11)
me@box:~$ which ruby
/usr/bin/ruby
me@box:~$ which gem
/usr/bin/gem
cyn0n@spicetrader:~$ 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
المحلول
بضعة أشياء لمحاولة:
- تحقق من أن exec! الطريقة في المصدر.
- تحقق كلا من مستودعات الأحجار الكريمة للتأكد من عدم وجود إصدار أقدم صافي SSH في هناك.
gem list
لديه بعض الشذوذ؛ إنه أكثر وضوحا للذهاب إلى الدلائل ونرى ما هو هناك. require
الإصدار الحالي في البرنامج النصي الخاص بك.require 'rubygems'
gem 'net-ssh', '=2.0.11'
require 'net-ssh'
لا تنتمي إلى StackOverflow