使用rvm的多个版本的rubygems?

Gra*_*dpa 17 ruby rubygems rvm

我的计算机上有两个项目: - 一个需要rubygems 1.6的旧Rails 2.3应用程序,不会在rubygems 1.8下运行; - 一个需要rubygems 1.8的新应用程序,不会在rubygems 1.6下运行.

每个项目都有自己的rvm gemset,但我无法弄清楚如何给它们不同版本的rubygems本身:

  • gem update --system [version]导致gem --version在两者中给出相同的答案;
  • rvm gemset [version]具有相同的结果.

如何在一个项目中运行rubygems 1.6.2,在另一个项目中运行1.8.11?


澄清一下,这就是我想要做的事情:

  • 在目录A中,有一个.rvmrc,其命令选择gemset A和rubygems 1.6.2
  • 在目录B中,有一个.rvmrc,其中包含最新选择gemset B和rubygems的命令
  • 有两个终端会话同时打开,一个在目录A中,另一个在目录B中
  • 在目录A中输入"gem --version"并查看"1.6.2"
  • 在目录B中输入"gem --version"并查看"1.8.11"

ddd*_*ddd 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
Run Code Online (Sandbox Code Playgroud)

原因是您在任何给定时间内只能激活1个版本的rubygems.这也是因为每个ruby都定义了对已知或预期使用的特定rubygems版本的依赖性(无论它是否可以与其他版本一起使用).

这是处理多个rubygems要求并消除潜在问题的预期方法.有关详细说明,请参阅https://gist.github.com/1273035.


Til*_*ilo 9

RVM有一个新功能:

使用"rvm ruby​​gems 1.6.2"来选择该版本的rubygems.

 rvm rubygems 1.6.2
Run Code Online (Sandbox Code Playgroud)

https://rvm.io/rubies/rubygems/ (参见页面底部的"RubyGems CLI API")

http://groups.google.com/group/rubyversionmanager/browse_thread/thread/e39fc7827d2d22e8