【问题标题】:capistrano - NameError: uninitialized constant Net::SSH::KnownHosts::SUPPORTED_TYPEcapistrano - NameError:未初始化的常量 Net::SSH::KnownHosts::SUPPORTED_TYPE
【发布时间】:2012-05-24 16:53:13
【问题描述】:

我正在尝试将我的 Rails (3.1.3) 应用程序部署到 preprod 环境。 我使用 capistrano (2.12.0) 和 rvm-capistrano (1.2.2)。

当我打电话给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 配置中的错误。

知道是什么原因造成的吗?

我正在使用带有 Ruby 1.9.3-p194 的 RVM。

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby capistrano rvm-capistrano


    【解决方案1】:

    现在从 net-ssh 2.5.1 恢复到 2.4.0 似乎可以解决问题。

    【讨论】:

    • 另外,如果您要降级和/或指向下面提到的分支中的修复程序,请确保使用 bundle exec cap deploy 运行 cap,否则 bundler 将获取您安装的 2.5.1 版本已经。
    • 以防万一有人想要作弊:$ gem uninstall net-ssh Select gem to uninstall: ` 1. net-ssh-2.3.0` ` 2. net-ssh-2.5.1` ` 3. 所有版本`> 2Successfully uninstalled net-ssh-2.5.1
    • 从 2.5.2 开始修复。运行bundle update 以获取最新版本或在您的 Gemfile 中指定特定版本
    【解决方案2】:

    我安装了 rvm-capistrano gem 来解决这个问题:

    gem install rvm-capistrano

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多