我的计算机上有两个项目: - 一个旧的Rails 2.3应用程序需要rubygems 1.6并且不会在rubygems 1.8下运行; - 一个需要rubygems 1.8的新应用程序,不会在rubygems 1.6下运行。
每个项目都有自己的rvm gemset,但我无法弄清楚如何为它们提供不同版本的rubygems本身:
如何在一个项目中运行rubygems 1.6.2,在另一个项目中运行1.8.11?
澄清一下,这就是我想做的事情:
答案 0 :(得分:17)
正确的方法是创建您想要安装的ruby的不同命名(-n)安装,并根据您想要的rubygem版本命名它们,例如
rvm --install use 1.9.2-nrg186 && rvm rubygems 1.8.6 && gem --list
rvm --install use 1.9.2-nrg1810 && rvm rubygems 1.8.10 && gem --list
原因是您在任何给定时间内只能激活1个版本的rubygems。这也是因为每个ruby定义了一个特定rubygems版本的依赖关系,该版本已知或预期可以使用(无论它是否可以与另一个版本一起工作)。
这是处理多个rubygems要求并消除潜在问题的预期方法。有关详细说明,请参见https://gist.github.com/1273035。
答案 1 :(得分:9)
RVM有一个新功能:
使用“rvm rubygems 1.6.2”选择该版本的rubygems。
rvm rubygems 1.6.2
https://rvm.io/rubies/rubygems/(参见页面底部的“RubyGems CLI API”)
http://groups.google.com/group/rubyversionmanager/browse_thread/thread/e39fc7827d2d22e8