2

ruby-1.9.3-p286サーバーにRVMをインストールしruby -v、ターミナルで確認しました。

ただし、RVM-Capistrano gem統合の指示に従って、

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ます。

誰かが同じような状況に遭遇しましたか?

4

1 に答える 1

1

私はちょうど同様の問題に苦しんでいて、解決策を探していて、あなたの質問を見つけました. とにかく、私の場合、私のファイル ( )、アプリケーションのファイル ( ) など、1.9.3-p327どこにでもあるように Ruby のバージョンを指定していました。.bashrcrvm --default use 1.9.3-p327.rvmrcrvm use 1.9.3-p327@my_app_namecap 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}"

なぜカピストラーノがこれを変えたのか1.9.3-p286は、今でも謎です。とにかく、次のように Ruby パッチレベルを行に追加しました。

set :rvm_ruby_string,           "1.9.3-p327@#{application}"

そして、cap deploy:setup働きcap deploy始めました。

さらに、Capistrano がアプリケーションの.rvmrcファイル (こちらを参照) で指定された Ruby バージョンを使用する可能性を追加していることがわかったので、その行を次のように設定するだけです。

set :rvm_ruby_string,           :local

で Ruby のバージョンを変更しても、二度と触る必要はありません.rvmrc

于 2012-11-23T11:09:49.937 に答える