我只是在为类似的问题而苦苦挣扎,在谷歌上搜索解决方案,并找到了您的问题。无论如何,就我而言,我已将 Ruby 版本指定为1.9.3-p327
无处不在:在我的.bashrc
文件(rvm --default use 1.9.3-p327
.rvmrc
rvm use 1.9.3-p327@my_app_name
cap deploy
cap deploy:setup
*** [err :: localhost] ruby-1.9.3-p286 is not installed.
** [out :: localhost] To install do: 'rvm install ruby-1.9.3-p286'
*** [err :: localhost] Error: RVM was unable to use '1.9.3@my_app_name'
原来问题出在 Capistrano 的配置文件中,my_app_name/config/deploy.rb
. 它定义了这样的 Ruby 版本:
set :rvm_ruby_string, "1.9.3@#{application}"
为什么 Capistrano 把它变成这样1.9.3-p286
对我来说仍然是一个谜。无论如何,我将 Ruby 补丁级别添加到该行,如下所示:
set :rvm_ruby_string, "1.9.3-p327@#{application}"
然后cap deploy:setup
开始cap deploy
工作。
此外,我发现 Capistrano 已经添加了使用应用程序.rvmrc
文件中给出的 Ruby 版本的可能性(请参阅this),因此您可以将该行设置为
set :rvm_ruby_string, :local
并且永远不必再碰它,即使你在.rvmrc
.