あなたが助けたり、メンテナーの 1 人になりたい場合は、手伝い始めてください。詳細な RVM 関連プロジェクトは RVM Github 組織 にあります。
Capistrano で RVM を使う
統合の利点
Capistrano と RVM を統合することで、Capistrano デプロイ タスクのコンテキストで操作する場合に RVM の通常の利点を得られます。以下が含まれます。- すべての Capistrano タスクが正しい Ruby と gem (gemset サポートを含む) を使用していることを確認できます。
- Capistrano 経由で RVM と Ruby の自動 インストール。オプション 1 として説明されているように、rvm-capistrano gem を使用する場合にのみ可能です。 以下。
- Capistrano 経由で gemset を管理し、デプロイメントの一部としてプロジェクトの gem をインストールまたは更新できます。
統合の選択肢
選択肢は 4 つあり、古いものから新しいものの順に以下に示します。構成が削減され、ハードコーディングされたパスが含まれないため、1 番目が推奨されます。
- RVM >= 1.11.3 の場合、 rvm-capistrano gem. を使用します。
- 以前の RVM だが依然として >= 1.0.1 の場合、組み込みの Capistrano プラグイン を使用します (gem ではありません)。
- Capistrano
: default_environment
設定 を使用します。 - sshd
PermitUserEnvironment
オプションを使用して、$ HOME/.ssh/environment
ファイルを介した構成を許可します。残念ながらこれはまだドキュメント化されていません。
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"