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

將 RVM 與 God 搭配使用

若要將 god(或任何其他需要使用 init.d 啟動的應用程式)與 RVM 搭配使用,您需要產生一個包裝指令碼。換句話說,您需要設定它,以便有一個載入正確 gemset 的替代可執行檔。

舉例來說,如果您已在 management gemset(又稱 ruby@management)中的 ruby 下安裝 god,您會執行下列動作

rvm wrapper ruby@management bootup god

執行此指令會在 ~/.rvm/bin 中產生可執行檔 bootup_god,或者如果您已在系統範圍內安裝 RVM,則會在 /usr/local/rvm/bin 中產生。

因此,在設定您的 init 檔案時,您不會使用直接路徑前往 god,而是使用前往 bootup_god 的路徑。舉例來說,您可以將下列內容新增至 /etc/rc.local(儘管我們建議您使用作業系統中選擇的 init.d 系統)

/home/your-long/.rvm/bin/bootup_god -c /path/to/config.god --log /var/log/god.log --no-syslog --log-level warn

此外,請注意您在 god 設定中參照的任何 gem,如果它們位於其他 gemset 或 ruby(例如 thinthor)中,您也需要透過下列方式產生包裝指令碼(因此,使用它們的路徑)

rvm wrapper ruby@gemset [scope] [binary-name]

其中 [scope] 是可執行檔的前綴(例如 god 前面),而 binary-name 是要為其產生包裝的二進位檔。因此,建立 $rvm_bin_path/[scope]_[binary-name],例如 ~/.rvm/bin/myapp_thin

為了簡化,current 可用作 ruby@gemset,而目前使用的 ruby 將用於產生包裝,例如

rvm wrapper current bootup god

最後,您會將 god 設定中所有呼叫 thin 或前往 thin 的路徑,改為包裝的路徑。