支援
RVM 由志工社群維護,請將問題回報至 RVM 問題追蹤器。
如果您能提供協助或希望成為維護人員之一,請直接開始協助。您可以在 RVM Github 組織 找到更多與 RVM 相關的專案。
贊助者
Carbon Ads

將 RVM 與 Capistrano 搭配使用

整合的優點

將 RVM 與 Capistrano 整合,在 Capistrano 部署任務的背景下執行時,可提供 RVM 的一般優點。這些優點包括

整合選項

有四種選項,以下從最新到最舊列出。第一個選項較佳,因為它減少設定,且不包含硬編碼路徑。

使用 rvm-capistrano 寶石

請參閱 寶石。 請注意,在此設定中,RVM 不會 自動載入為 shell 函式,儘管可執行檔會在 PATH 中。有關這些情況之間的差異,請參閱 腳本編寫。

使用內建的 capistrano 外掛程式(已過時)

RVM >= 1.0.1 包含一個內建外掛程式(不是 gem)用於支援 capistrano。此組態與上述 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)安裝,請將下列內容加入 Capfiledeploy.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

然後使用 Capistrano 的掛鉤功能,加入 after 掛鉤來啟動它。

after "deploy", "rvm:trust_rvmrc"