2012-05-24 100 views
9

我試圖將我的Rails(3.1.3)應用程序部署到preprod環境。 我使用capistrano(2.12.0)和rvm-capistrano(1.2.2)。capistrano - NameError:未初始化的常量Net :: SSH :: KnownHosts :: SUPPORTED_TYPE

當我打電話bundle exec cap ssh它工作正常。 但是,當我打電話bundle exec cap deploy我得到以下跟蹤:

$ cap deploy 
    triggering start callbacks for `deploy' 
    * 18:42:19 == Currently executing `multistage:ensure' 
*** Defaulting to `preprod' 
    * 18:42:19 == Currently executing `preprod' 
    * 18:42:19 == Currently executing `deploy' 
    * 18:42:19 == Currently executing `deploy:update' 
** transaction: start 
    * 18:42:19 == Currently executing `deploy:update_code' 
    * 18:42:19 == Currently executing `deploy:set_previous_revision' 
    * executing "cd /rails_apps/com.example.preprod/current; git rev-parse --short HEAD" 
    servers: ["preprod.example.com"] 
connection failed for: preprod.example.com (NameError: uninitialized constant Net::SSH::KnownHosts::SUPPORTED_TYPE) 

當然example.com是一個佔位符,它並非來自於Capistrano的配置錯誤。

任何想法可能導致什麼?

我使用RVM和Ruby 1.9.3-p194。

謝謝!

回答

13

從net-ssh 2.5.1恢復到2.4.0似乎解決了現在的問題。

+0

這是爲我工作爲好。 2.5.1是否被破壞? –

+0

另外,如果您正在降級和/或指向下面提到的分支中的修復程序,請確保您使用'bundle exec cap deploy'運行cap,否則bundler將會提取已經安裝的2.5.1版本。 –

+0

非常感謝! – Happynoff

0

我安裝RVM-Capistrano的寶石解決了這個問題:

gem install rvm-capistrano

相關問題