web-dev-qa-db-ja.com

Ruby)のrvmバージョンを使用するようにcapistranoを構成するにはどうすればよいですか?

capistrano デフォルトを使用するように指示する方法を誰かが知っていますか rvm バージョンのRuby forをプッシュ先のサーバーで使用します。システムバージョンの使用について。

それも可能ですか?

32
Sam Saffron

rvm-capistrano gem が最善の方法です。

そのgemの公式の詳細な使用法へのリンク 。それから私はこれがRubyのローカルバージョンを取得すると推測しています:

set :rvm_Ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") # Read from local system
10
KendallB

次の2つのオプションがあります。

  1. Ssh設定ファイルでPermitUserEnvironmentオプションを使用して.ssh環境変数を有効にします
  2. Capistrano :default_environment設定を使用する

2番目のオプションについては、deploy.rbファイルに次の行を追加するだけです。

set :default_environment, { 
  'PATH' => "/path/to/.rvm/ree-1.8.7-2009.10/bin:/path/to/.rvm/gems/ree/1.8.7/bin:/path/to/.rvm/bin:$PATH",
  'Ruby_VERSION' => 'Ruby 1.8.7',
  'GEM_HOME' => '/path/to/.rvm/gems/ree/1.8.7',
  'GEM_PATH' => '/path/to/.rvm/gems/ree/1.8.7' 
}

正確な場所を取得するには、cat ~/.rvm/defaultをご覧ください。

37
Simone Carletti

RVMのバージョンが開発マシンと本番マシンの両方で最新の場合は、これをdeploy.rbに追加します。

set :rvm_Ruby_string, '1.9.2@yourapp' # you probably have this already
set :rvm_type, :user # this is the money config, it defaults to :system
22
user577149

http://rvm.io/integration/capistrano/ を参照してください。 「rvmcapistranoプラグインを介した統合」は勝者のように見えます。

そして http://rvm.io/deployment/

7
Matt Scilipoti