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

使用 Cron 搭配 RVM

RVM 提供幾種簡單的方式與 cron 整合

  1. 直接呼叫 RVM 產生的包裝器。
  2. 在 shell 腳本中載入 RVM 環境檔案。
  3. 直接呼叫自訂 RVM 包裝器(例如 God)。
  4. 在 shell 腳本中載入和使用 RVM。

直接呼叫 RVM 產生的包裝器

對於每個已安裝的 ruby 和建立的 gemset,RVM 會為基本命令列工具(例如 gemrakeruby)建立包裝器。您可以在 $rvm_path/wrappers/<ruby-version>[@gemset-name] 中找到它們。

因此,當專案 ruby 為 2.1.1@projectX 時,下列 cron 條目將使用適當的環境運作

1 0  * * * /usr/local/rvm/wrappers/ruby-2.1.1@projectX/ruby /path/to/script.rb
1 15 * * * /usr/local/rvm/wrappers/ruby-2.1.1@projectX/rake update stats

別名

為了簡化 ruby 版本的未來變更,請使用別名,這是確保在 ruby 版本變更時組態不需變更的最簡單方式

rvm alias create my-project ruby-2.1.1@projectX

然後您可以使用別名路徑

1 15 * * * /usr/local/rvm/wrappers/my-project/rake update stats

在 shell 腳本中載入 RVM 環境檔案

對於每個已安裝的 ruby 和建立的 gemset,RVM 會建立環境檔案。您可以透過執行以下指令找到它們

rvm env --path -- ruby-version[@gemset-name]

假設專案 ruby@gemset 為 2.1.1@projectX,則呼叫

rvm env --path -- 2.1.1@projectX

將會傳回

/usr/local/rvm/environments/ruby-2.1.1@projectX

範例腳本

與 rvm 安裝的 ruby 互動的基本 shell 腳本如下所示

#!/usr/bin/env bash

# load rvm ruby
source /usr/local/rvm/environments/ruby-2.1.1@projectX

bundle install
ruby /path/to/script.rb
rake do something