ruby 2.2.3 上的 rvm-capistrano 错误

rvm-capistrano errors on ruby 2.2.3

我正在尝试使用 ruby 2.2.3、capistrano 和 rvm-capistrano 进行部署。

当我运行:

$ rvm use 2.2.3

然后:

$ cap deploy

部署失败,我收到此消息:

failed: "rvm_path=$HOME/.rvm $HOME/.rvm/bin/rvm-shell '2.2.0' -c 'git clone -q -b develop --depth 1 <rest of the git clone command>'" on xxx.xxx.xxx.xxx

有问题的服务器没有安装 ruby-2.2.0(只有 2.2.3),因此崩溃。但它不需要,因为我正在使用 ruby-2.2.3.

我做了一些挖掘,发现有一个 ENV 变量,GEM_HOME,它控制着 rvm-capistrano 所依赖的 ruby 版本。我的 ruby 版本使用 rvm 设置,看起来不错:

$ echo $GEM_HOME
/home/rof/.rvm/gems/ruby-2.2.3

看起来 bundler 中有一些代码更改了 GEM_HOME,但感觉有点像野鹅更改。想知道这是一个已知问题还是其他人遇到过的问题。

我的 config/deploy.rb 有:

set :rvm_ruby_string, :local  # use the same ruby as used locally for deployment
require "rvm/capistrano"

不是真正的答案,但我同时通过在 capistrano 部署脚本中明确说明我的 ruby 版本而不是依赖 :local

来解决这个问题