2012-05-24 84 views
2

有沒有人在那裏看到過這個錯誤?我一直沒能找到任何引用源到SUPPORTED_TYPE ...設置net-ssh連接時SUPPORTED_TYPE錯誤

irb(main):013:0> connection = Net::SSH.start('host', 'user', :password => 'password') NameError: uninitialized constant Net::SSH::KnownHosts::SUPPORTED_TYPE from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:117:in `keys_for' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:105:in `each_line' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:105:in `keys_for' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:103:in `open' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:103:in `keys_for' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:33:in `search_in' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:33:in `map' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:33:in `search_in' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:27:in `search_for' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/algorithms.rb:237:in `prepare_preferred_algorithms!' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/algorithms.rb:120:in `initialize' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/session.rb:79:in `new' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/session.rb:79:in `initialize' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh.rb:186:in `new' from /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh.rb:186:in `start' from (irb):13 from /usr/lib/ruby/site_ruby/1.8/rubygems/specification.rb:1313

回答

4

更簡單的解決方案是使用net-ssh的this forked version修復該問題(官方net-ssh gem的下一個版本也應該修復它),如here所述。

如果您在通過capistrano進行部署時(我今天有這個問題)可以安裝this net-ssh version,那麼您可以通過Gemfile安裝this net-ssh version,然後使用bundle exec cap deploy調用cap。

放入Gemfile gem 'net-ssh', :git => 'git://github.com/nessche/net-ssh.git'

+0

謝謝!這個解決方法幫了我一陣子,看起來他們很快就在你提供的github鏈接中獲得了一個新的官方gem。修復程序的版本是2.5.2。 – grumpasaurus

2

這是一個似乎已經由5月24日更新2.5.0或2.5.1淨引入了問題 - 寶石。你可以在這裏找到恆SUPPORTED_TYPE:

http://net-ssh.github.com/net-ssh/classes/Net/SSH/KnownHosts.html

我不知道所有的細節,但到目前爲止,已經有一對夫婦解決這個問題。一個是從你的文件中刪除你的known_hosts文件(或者你試圖連接的特定主機),並且你可能能夠連接,直到該主機再次被添加到known_hosts - 如果它已經存在,它將返回相同的錯誤那裏,出於某種原因。

我發現的第二個選項是恢復到版本2.4.0的寶石。

http://net-ssh.lighthouseapp.com/projects/36253-net-ssh/tickets/58-nameerror-uninitialized-constant-netsshknownhostssupported_type

希望它能幫助:我在提交一張票的問題!

編輯:Clarif的解決方案看起來像一個更可接受的。謝謝,Clarif!