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

时间:2010-09-14 13:29:38

标签: ruby rubygems rvm

我对RVM网站上的解释感到很困惑。我不清楚不同的红宝石解释器和宝石组之间的关系。据我说,就像这样 -

  1. 我的Mac帐户中有一个rvm
  2. rvm安装并管理一组不同版本的ruby解释器。
  3. 每个ruby版本都有一组gemsets。
  4. 我明白了......欢迎提出更多解释。我可以继续工作(Ruby 1.8.7 + rails 2.3.8及其依赖项)和(Ruby 1.9.2和Rails 3.0及其依赖项)......

    如果有人在rvm的帮助下精通处理许多红宝石版本和宝石,请向我解释...感谢您的帮助

2 个答案:

答案 0 :(得分:18)

我喜欢这样做...

  1. 使用RVM安装ruby
  2. 切换到/使用该红宝石
  3. 为项目创建gemset
  4. 切换到/使用该gemset
  5. 安装所需的宝石
  6. 创建一个别名,指向我选择的ruby&宝石
  7. 切换到/使用新别名(再次,与项目关联)
  8. 对于您希望彼此分开的不同项目,需要多次执行此操作。

    示例:

    $ 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
    $ ....
    

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

    祝你好运!

答案 1 :(得分:2)

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

只需运行以下命令:

rvm rvmrc create ruby-1.8.7-p358@my_project

这将有助于阻止我在切换和忘记更改gemsets时产生的混淆

<强>更新 .rvmrc文件正在被删除以用于较新的.ruby-version文件 请参阅此处的讨论:https://gist.github.com/fnichol/1912050