[英]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 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
更改了Ruby版本,也.rvmrc
再次觸摸它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.