首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RVM-capistrano gem,找不到ruby-1.9.3-p0

RVM-capistrano gem,找不到ruby-1.9.3-p0
EN

Stack Overflow用户
提问于 2012-10-27 19:11:40
回答 1查看 1.4K关注 0票数 2

我在安装了RVM的服务器上安装了ruby-1.9.3-p286,并在终端中使用ruby -v进行了确认。

但是,按照RVM-Capistrano gem integration的指示,

代码语言:javascript
复制
set :rvm_ruby_string,  ENV['GEM_HOME'].gsub(/.*\//,"")
require 'rvm/capistrano'

运行cap deploy,它仍然坚持运行ruby-1.9.3-p0,当然它找不到它。

在终端中手动打开irb并运行ENV['GEM_HOME'].gsub(/.*\//,"")返回ruby-1.9.3-p286,所以我不明白为什么它总是要求ruby-1.9.3-p0

有谁遇到过类似的情况吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-23 19:09:50

我正在为一个类似的问题而苦苦挣扎,我在谷歌上寻找解决方案,找到了你的问题。无论如何,在我的例子中,我已经将Ruby版本指定为1.9.3-p327 everywhere:在我的.bashrc文件(rvm --default use 1.9.3-p327)中,在应用程序的.rvmrc文件(rvm use 1.9.3-p327@my_app_name)中,等等,当我命令cap deploycap deploy:setup时,我仍然得到这个输出

代码语言:javascript
复制
*** [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版本的:

代码语言:javascript
复制
set :rvm_ruby_string,           "1.9.3@#{application}"

为什么卡普斯特拉诺把它变成了1.9.3-p286,这对我来说仍然是个谜。无论如何,我将Ruby补丁级别添加到行中,如下所示:

代码语言:javascript
复制
set :rvm_ruby_string,           "1.9.3-p327@#{application}"

然后cap deploy:setupcap deploy开始工作。

此外,我发现Capistrano添加了使用应用程序的.rvmrc文件(see this)中给出的Ruby版本的可能性,因此您只需将该行设置为

代码语言:javascript
复制
set :rvm_ruby_string,           :local

再也不用碰它了,即使你在.rvmrc中改变了Ruby的版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13099646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档