如何使用RVM管理多个gemsets和ruby版本?

我对RVM网站上的解释感到困惑。 不同的ruby解释器和gemsets之间的关系对我来说并不清楚。 据我说,就像这样 –

  1. 我在Mac上的帐户有一个rvm
  2. 那个rvm安装和管理一组不同版本的ruby解释器。
  3. 每个ruby版本都有一组gemsets。

我明白了……欢迎提出更多解释。 我可以继续工作(Ruby 1.8.7 + rails 2.3.8及其依赖项)和(Ruby 1.9.2和Rails 3.0及其依赖项)…

如果任何人在rvm的帮助下精通处理许多ruby版本和gem,请向我解释…感谢您的帮助

我喜欢这样做…

  1. 使用RVM安装ruby
  2. 切换到/使用ruby
  3. 为项目创建gemset
  4. 切换到/使用该gemset
  5. 安装所需的gem
  6. 创建一个指向我选择的ruby&gemset的别名
  7. 切换到/使用新别名(再次,与项目关联)

对于您希望与其他项目分开的不同项目,需要多次执行此操作。

例:

$ rvm install ruby-1.9.2 ... $ rvm list rvm rubies => ree-1.8.7-head [ i386 ] ruby-1.9.2-head [ i386 ] ruby-1.9.2-preview3 [ i386 ] $ rvm use ruby-1.9.2-preview3 info: Using ruby 1.9.2 preview3 $ rvm gemset create my_project info: Gemset 'my_project' created. rvm gemset use my_project info: Now using gemset 'my_project' $ gem install httparty When you HTTParty, you must party hard! Successfully installed crack-0.1.8 Successfully installed httparty-0.6.1 2 gems installed $ rvm alias create my_project ruby-1.9.2-preview3@my_project info: Creating alias my_project for ruby-1.9.2-preview3@my_project. info: Recording alias my_project for ruby-1.9.2-preview3@my_project. $ rvm use my_project info: Using ruby 1.9.2 preview3 with gemset my_project $ .... 

现在我有一个专门用于特定项目的整个环境。 这很好,因为我可以尝试各种不同的gem/版本,而不必担心在其他具有非常特殊要求的项目中踩踏。

祝好运!

要添加上面的Brian的答案,您还可以使用.rvmrc文件在输入新项目目录时动态切换gemsets。

只需运行以下命令:

 rvm rvmrc create ruby-1.8.7-p358@my_project 

这将有助于阻止我在切换和忘记更改gemsets时遇到的混乱

UPDATE .rvmrc文件正在为新的.ruby-version文件删除,请参阅此处的讨论: https ://gist.github.com/fnichol/1912050