如何使用 ruby 1.8.7 安装 capistrano v2.13.5?

How to install capistrano v2.13.5 with ruby 1.8.7?

我正在使用 ruby 1.8.7 (2013-06-27 patchlevel 374) [i686-darwin14]。当我尝试安装 capistrano gem 时,出现以下错误:

sudo gem install capistrano -v2.13.5
ERROR:  Error installing capistrano:
    net-ssh requires Ruby version >= 2.0.

AFAIK capistrano 2.13.5 应该与 ruby 1.8.7

兼容

如何在安装 ruby 1.8.7 (<2.0) 的情况下安装 capistrano v2.13.5

我已经手动安装 capistrano 依赖项解决了这个问题。如果遇到同样的问题,执行以下命令:

sudo gem install net-sftp -v2.0.0
sudo gem install net-scp -v1.0.0
sudo gem install net-ssh-gateway -v1.1.0
sudo gem install capistrano -v2.13.5

即使在安装依赖项之后,capistrano 安装过程也会要求 net-ssh 需要 ruby >= 2。

我不得不从 https://github.com/capistrano/capistrano/releases 下载我想要的源代码。解压,cd进入目录,运行:

gem build capistrano.gemspec
gem install --local capistrano-2.15.5.gem

我在 Ubuntu 14.04 中安装 Capifony 时收到相同的错误消息。 我这样做了:

# gem install net-ssh -v 2.9.2

然后是这个:

# gem install capifony

成功了。

我找到了描述的解决方案 here

Capistrano 正在尝试安装其依赖项 (net-ssh) 的最新版本,该版本与 v2.0 之前的 ruby 版本不兼容。解决方案是在安装 capistrano 之前安装该依赖项的正确版本。正确的版本意味着依赖与 Ruby 和 capistrano 兼容。在这种情况下,即 net-ssh v 2.6.5。所以以下顺序有效:

gem install net-ssh -v 2.6.5
gem install capistrano -v 2.13.5