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

RVM 的基礎

想知道為什麼您應該 使用 RVM? 首先,RVM 不僅能輕鬆且一致地安裝多個 Ruby 解譯器/執行時間,還提供許多功能,例如 gemsets,而這些功能通常不受大多數 Ruby 安裝的支援。

RVM 也讓您能以不會搞亂您現有 Ruby 安裝的方式(除非您告訴它這麼做)使用不同的 Ruby,還能讓您在不同的終端機中同時執行多個不同的 Ruby!

開始使用

首先,您必須確保您已 安裝 RVM

安裝後設定

當您透過 ssh 或本機 shell 帳戶登入時,RVM 將會作為函式載入。如果遇到問題,請使用下列連結之一作為設定終端機的參考

對於非互動式 shell,RVM 將只會新增至 PATH,不會載入。這表示在此模式中無法使用 Ruby,但有簡單的方法可以載入 Ruby

source $(rvm 1.9.3 do rvm env --path)

然後,當您登入或產生 shell 時,這將會自動載入 RVM,不論 shell 類型為何。很方便,對吧?

您現在應該開啟一個新的 shell 並開始使用 rvm。

關於 .bash_profile 警告的說明。在少數 Linux 發行版中,預設的 .bash_profile(偶爾是 .bashrc)包含下列程式碼列

[ -z "$PS1" ] && return

條件 [ -z "$PS1" ] 在字串 "$PS1" 長度為零(非互動式 shell)時為真。rvm 需要載入互動式和非互動式 shell,這就是強烈建議變更此檔案的原因。

首先,請確認前一步驟已成功執行,並且已正確載入 rvm。為此,並驗證 RVM 已載入作為 shell 函數,請執行:type rvm | head -1

自動安裝相依性

安裝 ruby 時,RVM 可能需要使用 sudo 來安裝相依性。請確定呼叫 RVM 指令的使用者,特別是 rvm install,擁有 sudo 權限。

如果您希望讓沒有 sudo 權限的使用者能夠執行 RVM 指令,您需要關閉自動安裝相依性

rvm autolibs disable

不過,這表示您必須手動管理相依性。

安裝 ruby

假設這顯示「rvm is a function」,您就可以繼續了。舉例來說,要安裝並使用 Ruby 2.1.1,您可以執行

$ rvm install 2.1.1

使用 RVM 成功安裝 Ruby 詮釋器後,您可以執行 use 指令來使用它。例如,對於 Ruby 2.1.1

$ rvm use 2.1.1
$ ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin12.0] 
$ which ruby
/Users/rys/.rvm/rubies/ruby-2.1.1/bin/ruby

注意:對於新使用者來說,如何切換 Ruby 版本一直有些混淆。不需要在 rvm list 輸出中,已安裝 ruby 的清單中,包含「ruby-」部分。這只用於表示不同種類的 ruby,例如 REE ruby 和 MRI ruby 等。不過,請注意,當您在 MRI 或 Rubinus 或 REE 之間切換時,然後您需要使用 ree|ruby|rbx 部分。當您想要切換時,只要使用版本號碼和任何修補程式等級即可。如果是 -head 版本,請使用完整字串,因為它不包含數字。這也適用於設定預設 Ruby。以下是我的意思的範例

# This changes to MRI Ruby 2.1.1 and sets it as your default.
$ rvm --default use 2.1.1

# The following changes to ruby-head (MRI Ruby) but does _not_
# set it as your default Ruby.
$ rvm use ruby-head

# This changes to jruby-head and _does_ set it as
# your default ruby
$ rvm --default use jruby-head

# You use the following full form if, for example,
# you previously had a different Ruby selected (maybe JRuby)
$ rvm use ruby-2.1.1

# This changes to whatever RVM recognizes as the most current
# MRI Ruby 2.1.1, and sets it as default.
$ rvm --default use 2.1.1

注意:如果您使用主要。次要版本號碼,RVM 會在 $rvm_path/config/db 中檢查並使用該主要。次要版本中最新修補程式等級。例如,如果您只安裝了 2.0.0-p451,而 2.0.0-p481 是最新版本,RVM 會嘗試為您下載、安裝並設定 2.0.0-p481 作為您的預設 2.0.0。這種行為可能是您想要的,也可能不是。如果不是,請務必在您指定 RVM 在設定預設時應使用哪個 Ruby 時,包含修補程式等級。每次您更新 RVM 時,RVM 都會更新已知清單 ($rvm_path/config/db 和 $rvm_path/config/known),因此主要。次要版本的「目前」版本(例如,撰寫本文時為 2.1.2)可能會對您有所改變。由於這個原因,RVM 沒有依您已安裝的內容為準。它依據這兩個檔案中維護的內容為準。

注意:Ruby 從 Ruby 2.1.1 開始切換到語意化版本控制方案,這可能會影響您使用 rvm 來管理它的方式。 Ruby 語意化版本控制

請注意:RVM 對您已安裝的任何系統 Ruby 採取「不干預」政策。若要「使用」系統 Ruby,您可以指示 RVM 復原它所套用的環境變更,如下所示。

$ rvm use system
$ ruby -v
ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]
$ which ruby
/usr/bin/ruby

which 指示目前的殼層傳回 Ruby 的位置。在此情況下,您可看到 RVM 實際上已將自己「隱藏」在系統中,並讓您存取系統安裝的 Ruby。隱藏並不表示 RVM 已消失,而是系統環境和相關變數已設定回系統 Ruby 預期的狀態,就像 RVM 從未安裝一樣。執行另一個 $ rvm use default 會讓 RVM 恢復服務,並載入您設定為預設 Ruby 的任何 Ruby。您可以隨時執行 $ rvm alias show default 來查看預設 Ruby。

我們不能過度強調這一點!RVM 不會控制系統 Ruby 或其 gem。只有 RVM 安裝的 Ruby 和 gem 才在 RVM 的控制之下!

下一步是什麼?

若要進一步了解,請瀏覽網站的其餘部分。特別是,請務必查看工作流程 範例。

請記住,切換 Ruby 是以每個殼層為基礎。如果您想要更多資訊,了解在開啟新殼層時如何設定可用的 Ruby,您需要閱讀我們的網頁,了解如何 設定預設 Ruby 解譯器。

在您熟悉處理 Ruby 解譯器之後,下一步是開始學習 RVM gemset。

如果您想要知道 RVM 在任何時候選擇並啟用的 Ruby(如果有),您可以將此資訊新增到您的 殼層提示。

如果您在殼層中使用 Tab 補完,請參閱有關使用 殼層補完 的文件。