11

我对 RVM 网站中给出的解释感到非常困惑。我不清楚不同的 ruby​​ 解释器和 gemset 之间的关系。在我看来,是这样的——

  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​​ 版本和 gemset,请向我解释...谢谢您的帮助

4

2 回答 2

19

这就是我喜欢这样做的方式......

  1. 使用 RVM 安装 ruby
  2. 切换到/使用那个红宝石
  3. 为项目创建 gemset
  4. 切换到/使用该 gemset
  5. 安装所需的宝石
  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
$ ....

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

祝你好运!

于 2010-09-14T15:06:32.643 回答
2

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

只需运行以下命令:

rvm rvmrc create ruby-1.8.7-p358@my_project

这将有助于避免我在切换和忘记更换 gemset 时的困惑

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

于 2012-07-24T15:33:18.067 回答