ما يجب القيام به عندما تشكو Net-SSH من Exec! طريقة مفقودة؟

StackOverflow https://stackoverflow.com/questions/957158

  •  12-09-2019
  •  | 
  •  

سؤال

هذا يقودني للجنون. لقد واجهت هذا كل الآن ثم على خادم أوبونتو / ديبيان جديد. أساسا لا أستطيع أن أفعل 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
هل كانت مفيدة؟

المحلول

بضعة أشياء لمحاولة:

  1. تحقق من أن exec! الطريقة في المصدر.
  2. تحقق كلا من مستودعات الأحجار الكريمة للتأكد من عدم وجود إصدار أقدم صافي SSH في هناك. gem list لديه بعض الشذوذ؛ إنه أكثر وضوحا للذهاب إلى الدلائل ونرى ما هو هناك.
  3. require الإصدار الحالي في البرنامج النصي الخاص بك.

    require 'rubygems'

    gem 'net-ssh', '=2.0.11'

    require 'net-ssh'

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top