迷思
雖然 RVM 代表「Ruby 環境管理員」,但許多人似乎不清楚您可以使用 RVM 的範圍,以及它如何適當地融入開發和部署生態系統。此頁面旨在消除這些迷思,並提供我們的觀點。順帶一提,是的,RVM 最初代表「Ruby 版本管理員」,但後來改為「Ruby 環境管理員」,因為它處理的範圍遠超過 Ruby 本身。
迷思 1:RVM 僅適用於管理 Ruby 版本
儘管 RVM 代表「Ruby 環境管理員」,但它的功能遠不止於此。事實上,當您將 RVM 視為處理許多常見與 Ruby 開發相關任務的工具集合時,它會更有用。
除了提供多個 Ruby 版本外,它還提供 gemsets(讓您可以根據 gem 將不同的專案分開,即使它們可能不相容,也能使用多個版本的 gem,例如 Rails 2 和 Rails 3),以及以下功能
- 當您變更目錄時,自動切換您的 gemset/Ruby 版本
- 設定常見的相依性(透過套件)
- 提供特定專案的一致 Ruby 環境
- 讓您建置自訂 Ruby/建置具有自訂修補程式的 Ruby
- 提供特定 Ruby 的一致介面
- 編寫腳本處理常見行為
- 簡化/自動化 Ruby 和 gem 的設定
更重要的是,它提供一個處理 Ruby 版本的介面,這個介面在所有平台上都一致。
迷思 2:RVM 僅適用於 {OSX、Linux、您的作業系統}
RVM 建立於建構於 POSIX 工具的任何 *-nix 系統上。如果 RVM 無法在您選擇的 POSIX 相容系統上運作(最低需求為建構 ruby、curl 和 Bash 所需的工具),那麼您就找到了一個錯誤 - 請透過 [開啟一個議題](https://github.com/rvm/rvm/issues) 讓我們知道。
迷思 #3:RVM 僅適用於 Bash
RVM 目前設計為與任何提供 Bash 中基本功能的 shell 搭配使用 - 即支援陣列、[[-style 測試等。這表示它應該可以在提供 Bash 功能超集的任何 shell 上運作。
如果您的 shell 無法與 RVM 搭配使用,但它應該可以(例如它不是 csh / ksh / 其他非 sh 類型的 shell),請讓我們知道。目前,它不符合 POSIX sh 標準。不過,計畫未來會加入對此的支援。
迷思 #4:RVM 僅適用於開發
我們聽過最常見的錯誤觀念之一是 RVM「僅供開發使用」。實際上,RVM 最初是為伺服器設定而建構的,而且非常適合此類用途。它不僅包含可輕鬆自動化的工具,讓設定 ruby / gem 變得有效率,它也表示您可以從開發、測試到生產,都擁有相符的環境。
更重要的是,RVM 讓您可以在需要時輕鬆升級 Ruby 版本,例如進行安全性更新。同樣重要的是,它讓自動化任務變得有效率。
最後,對於測試環境中的使用者而言,RVM 讓針對多個 ruby 版本執行測試變得非常有效率。在持續整合中,RVM 非常適合管理您的 ruby。
迷思 #5:Wayne 是個機器人 / Wayne 其實是蝙蝠俠
我們既不證實也不否認這些說法。