命名 Gem Sets
RVM 提供區隔獨立的 Ruby 設定。這表示 Ruby、Gems 和 IRB 全部都是分離且獨立的,與系統和彼此分離。
您甚至可以有獨立的命名 Gemsets。
例如,假設您正在使用 Ruby 2.1.1 測試 Gem 的兩個版本。您可以將其中一個安裝到預設的 2.1.1,然後為另一個版本建立一個命名的 Gemset,並在它們之間輕鬆切換。
範例:測試 Gems
$ rvm 2.1.1@testing
將使用「2.1.1@testing」GEM_HOME(請務必先建立它),而
$ rvm 2.1.1
將使用預設的 2.1.1 GEM_HOME
範例:Rails 版本和升級應用程式
為了說明重點,我們來談談常見的使用案例。假設您正在針對新的 Rails 版本測試 Rails 應用程式。RVM 讓此類測試變得非常容易,讓您可以在多個 Rails 版本之間快速切換。首先,讓我們設定環境
$ rvm 2.1.1 $ gem install rails -v 4.1.0 $ rvm gemset create rails410 rails320 Gemset 'rails410' created. Gemset 'rails320' created. $ rvm 2.1.1@rails410 $ gem install rails -v 4.1.0 $ rvm 2.1.1@rails320 $ gem install rails -v 3.2.0
請注意,對於上述每個 Ruby 安裝,您都可以有完全不同的版本!
現在您的環境已經設定好,您可以依照下列方式在 Rails 版本和 Ruby 版本之間切換。
$ rvm 2.1.1@rails410 ; rails --version Rails 4.1.0 $ rvm 2.1.1@rails320 ; rails --version Rails 3.2.0
如果您正在部署到伺服器,或者您不想等待每個 Gem 安裝 rdoc 和 ri,您可以停用 Gem 安裝和更新的這些功能。只要將下列程式碼行新增到您的 ~/.gemrc 或 /etc/gemrc
gem: --no-rdoc --no-ri
警告!!!
* RVM 為每個 Ruby 版本和 Gemset 提供獨立的 Gem 目錄。* 這表示必須為每個版本和 Gemset 明確安裝 Gem。RVM 可協助您管理這個程序;請參閱 RVM 設定文件 頁面。
注意:關於預設和全域 Gemsets 有何不同,這裡稍作說明。如果您完全不使用 Gemset,您會在「預設」組中取得 Gem。如果您使用特定 Gemset(例如 @testing),它會從該 Ruby 的 @global 繼承 Gem。「全域」Gemset 讓您可以在所有 Gemsets 中分享 Gem。「預設」一詞的字面意思說明了一切,例如,在沒有為特定已安裝 Ruby 選擇 Gemset 的情況下使用的 Gemset。