【发布时间】:2015-12-30 03:53:09
【问题描述】:
我正在尝试使用 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 版本。使用 rvm 设置我的 ruby 版本,看起来不错:
$ 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来解决这个问题。
标签: ruby rubygems capistrano bundler rvm-capistrano