サポート
RVM はボランティア のコミュニティによってメンテナンスされています。問題は RVM の問題トラッカー に報告してください。
あなたが助けたり、メンテナーの 1 人になりたい場合は、手伝い始めてください。詳細な RVM 関連プロジェクトは RVM Github 組織 にあります。
スポンサー
Carbon Ads

Capistrano で RVM を使う

統合の利点

Capistrano と RVM を統合することで、Capistrano デプロイ タスクのコンテキストで操作する場合に RVM の通常の利点を得られます。以下が含まれます。

統合の選択肢

選択肢は 4 つあり、古いものから新しいものの順に以下に示します。構成が削減され、ハードコーディングされたパスが含まれないため、1 番目が推奨されます。

rvm-capistrano gem を使用します。

この設定では RVM はシェル関数として自動的に 読み込まれませんが、実行可能ファイルは PATH. で利用できます。状況の違いについては、スクリプティングを参照してください。

組み込みの Capistrano プラグインを使用する (時代遅れ)

RVM >= 1.0.1 には Capistrano サポート用の組み込みプラグイン (gem ではありません) が含まれています。この構成は上記の gem アプローチとほぼ同一ですが、プラグインが見つかるように RVM の lib ディレクトリをロード パスに追加するための追加の行が必要です。

# Choose a Ruby explicitly, or read from an environment variable.
set :rvm_ruby_string, 'ree@rails3'
# set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,'') 

# Add RVM's lib directory to the load path.
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))

# Load RVM's capistrano plugin.
require 'rvm/capistrano'

デフォルトでは、プラグインは RVM のシステムインストールを使用することに注意してください。これは、gem のデフォルトインストールモードとは正反対です。代わりに 1 ユーザーあたり (ルート以外) のインストールを使用するように設定するには、Capfile または deploy.rb に次の行を追加します。

set :rvm_type, :user  # Literal ":user"

Capistrano :default_environment 設定を使用する (ハードコア)

このオプションの場合、deploy.rb ファイルに次の行を追加し、もちろん特定の rvm ruby に調整します。

set :default_environment, {
  'PATH' => "/path/to/.rvm/gems/ree/1.8.7/bin:/path/to/.rvm/bin:/path/to/.rvm/ree-1.8.7-2009.10/bin:$PATH",
  'RUBY_VERSION' => 'ruby 1.8.7',
  'GEM_HOME'     => '/path/to/.rvm/gems/ree-1.8.7-2010.01',
  'GEM_PATH'     => '/path/to/.rvm/gems/ree-1.8.7-2010.01',
  'BUNDLE_PATH'  => '/path/to/.rvm/gems/ree-1.8.7-2010.01'  # If you are using bundler.
}

正確な場所を取得するには、~/.rvm/config/default 内を確認してください。

Capistrano を構成して、デプロイ時にプロジェクト .rvmrc ファイルを自動的に信頼させるには、config/deploy.rb に次の行を追加します。

namespace :rvm do
  task :trust_rvmrc do
    run "rvm rvmrc trust #{release_path}"
  end
end

次に、after フックを追加して起動することで、Capistrano のフックの機能を使用します。

after "deploy", "rvm:trust_rvmrc"