2012-05-24 10 views
9

Ich versuche, meine Rails (3.1.3) -Anwendung auf dem Preprod env bereitzustellen. Ich benutze Capistrano (2.12.0) und rvm-capistrano (1.2.2).capistrano - NameError: nicht initialisierte Konstante Net :: SSH :: KnownHosts :: SUPPORTED_TYPE

Wenn ich bundle exec cap ssh anrufen, funktioniert es gut. Aber wenn ich bundle exec cap deploy nenne ich die folgende Spur erhalten:

$ 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) 

Natürlich example.com ist ein Platzhalter, ist es nicht von einem Fehler in der Capistrano Config kommen.

Irgendeine Idee von was könnte das verursachen?

Ich benutze RVM mit Ruby 1.9.3-p194.

Danke!

Antwort

13

Das Zurücksetzen von net-ssh 2.5.1 auf 2.4.0 scheint das Problem vorerst zu lösen.

+0

Dies ist für mich so gut funktioniert. Ist 2.5.1 kaputt? –

+0

Wenn Sie im unten genannten Zweig ein Downgrade durchführen und/oder auf den Fix verweisen, vergewissern Sie sich, dass Sie cap mit 'bundle exec cap deploy 'ausführen, da andernfalls Bundler die Version 2.5.1, die Sie bereits installiert haben, abruft. –

+0

Vielen Dank! – Happynoff

0

I RVM-Capistrano Juwel zu lösen dieses Problem installiert:

gem install rvm-capistrano