もしお手伝いいただける方、またはメンテナの一員になりたい方がいらっしゃいましたら、ぜひご協力ください。RVM 関連のプロジェクトは RVM Github 組織 で確認できます。
        Capistrano との RVM の連携
統合の利点
RVM を Capistrano と統合することで、Capistrano デプロイタスクの実行時に RVM の通常の利点が得られます。これらには以下が含まれます。- すべての Capistrano タスクで正しい Ruby と gem(gemset のサポートを含む)を使用することを保証します。
- Capistrano を通じて RVM と Ruby を自動的にインストールします。これは rvm-capistrano gem を使用する場合のみ可能です(オプション 1 下記参照)。
- Capistrano を介して gemset を管理し、デプロイの一部としてプロジェクトの gem をインストールまたは更新できます。
統合方法
下記に、最新のものから古いものへと4つの方法を示します。設定が簡素化され、ハードコードされたパスが含まれていないため、最初の方法が推奨されます。
- RVM >= 1.11.3 の場合、rvm-capistrano gem を使用します。
- 古い RVM(ただし >= 1.0.1)の場合、組み込みの Capistrano プラグイン を使用します(gem ではありません)。
- Capistrano の :default_environment設定 を使用します。
- sshd の PermitUserEnvironmentオプションを使用して、$HOME/.ssh/environmentファイルを介した設定を許可します。残念ながら、これはまだ文書化されていません。
rvm-capistrano gem の使用
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 のデフォルトのインストールモードとは正反対です。代わりに、パーユーザー(root 以外)インストールを使用するように設定するには、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 の内容を確認してください。
デプロイ時にプロジェクトの .rvmrc ファイルを Capistrano が自動的に信頼するように設定するには、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"
 
        