もしお手伝いいただける方、またはメンテナの一員になりたい方がいらっしゃいましたら、ぜひご協力ください。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"