我的计算机上有两个项目:
- 旧的 Rails 2.3 应用程序需要 rubygems 1.6,并且无法在 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 和 rubygemslatest 的命令
- 同时打开两个终端会话,一个在目录 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 个版本的 rubygems。这也是因为每个 ruby 都定义了对特定 rubygems 版本的依赖关系,该版本是已知的或预期可以使用的(无论它是否可以与另一个版本一起使用)。
这是处理多个 rubygems 需求并消除潜在问题的预期方法。看https://gist.github.com/1273035 https://gist.github.com/1273035详细说明这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)