簡體   English   中英

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

[英]RVM-capistrano gem, cannot find ruby-1.9.3-p0

我在具有RVM的服務器上安裝了ruby-1.9.3-p286 ,並在終端中使用ruby -v進行了確認。

但是,按照RVM-Capistrano gem Integration的說明進行操作,

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

有人遇到過類似情況嗎?

我只是在努力解決類似的問題,用Google搜索解決方案,然后找到了您的問題。 無論如何,就我而言,我到處都將Ruby版本指定為1.9.3-p327 :在我的.bashrc文件中( rvm --default use 1.9.3-p327 ),在應用程序的.rvmrc文件中( rvm use 1.9.3-p327@my_app_name )等,在命令cap deploycap 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:setupcap deploy開始工作。

此外,我發現Capistrano增加了使用應用程序的.rvmrc文件中提供的Ruby版本的可能性( 請參見this ),因此您可以將該行設置為

set :rvm_ruby_string,           :local

即使您在.rvmrc更改了Ruby版本,也.rvmrc再次觸摸它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM