命名 Gem Sets
RVM 为您提供独立的 Ruby 设置。 这意味着 ruby、gems 和 irb 都是独立且自包含的 - 与系统和彼此分离。
您甚至可以拥有单独的命名 gemsets。
例如,假设您正在测试两个版本的 gem,使用 ruby 2.1.1。 您可以将一个安装到默认的 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 显式安装 gems。 RVM 帮助您管理此过程; 请参阅 RVM set 文档 页面。
注意:关于默认和全局 gemsets 的区别。 如果您根本不使用 gemset,您将在 'default' 集中获得 gems。 如果您使用特定的 gemset(例如 @testing),它将继承该 ruby 的 @global 中的 gems。 'global' gemset 允许您将 gems 共享到所有 gemsets。 'default' 这个词字面意思就是它本身,例如,在没有为特定安装的 ruby 选择 gemset 时使用的 gemset。