用rvm使用多个版本的rubygems?[英] Use multiple versions of rubygems with rvm?

本文是小编为大家收集整理的关于用rvm使用多个版本的rubygems?的处理方法,想解了用rvm使用多个版本的rubygems?的问题怎么解决?用rvm使用多个版本的rubygems?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我的电脑上有两个项目:- 一个旧的 Rails 2.3 应用程序需要 ruby​​gems 1.6 并且不能在 ruby​​gems 1.8 下运行;- 需要 ruby​​gems 1.8 且无法在 ruby​​gems 1.6 下运行的较新应用.

每个项目都有自己的 rvm gemset,但我不知道如何为他们提供不同版本的 ruby​​gems:

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

如何在一个项目中运行 ruby​​gems 1.6.2 而在另一个项目中运行 1.8.11?

<小时>

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

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

推荐答案

正确的方法是为你想要安装的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 个版本的 ruby​​gems.这也是因为每个 ruby​​ 都定义了对特定 ruby​​gems 版本的依赖项,该版本已知或预期可以使用(不管它是否可以与另一个版本一起使用).

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

本文地址:https://www.itbaoku.cn/post/786425.html