什么`@ something`代表`rvm使用2.0.0 @ something`?

时间:2013-08-05 01:20:22

标签: ruby rvm gemset

正如标题所示,找不到@something rvm use 2.0.0@something中{{1}}所做的任何文档?

2 个答案:

答案 0 :(得分:7)

RVM是Ruby版本管理器,其网站位于:https://rvm.io/

命令rvm use 2.0.0@something告诉RVM更改当前shell(终端)的设置,以便您使用ruby 2.0.0。它还说要使用名为something的gemset。 Gemsets是RVM的一个功能,它允许您将Ruby gem分成不同的集合。

有关gemsets的更多信息,请访问:https://rvm.io/gemsets/basics

答案 1 :(得分:1)

假设您正在处理三个并行项目:一个使用Ruby 1.9.3,另一个使用Ruby 2.0.0。让我们说:

  • 项目A:Ruby 1.9.3
  • 项目B:Ruby 2.0.0
  • 项目C:Ruby 2.0.0

当您处理项目A时,您可以说rvm use 1.9.3,它会将您当前的Ruby版本设置为1.9.3。

当您使用Project B或C时出现问题,并且他们使用同一gem的不同版本(假设Project B使用httparty 1.0,而项目C使用httparty 2.0)。

在这种情况下,rvm不仅允许您使用rvm use使用不同的红宝石,还允许您对每个Ruby使用不同的宝石集(称为gemsets)。

所以你可以说(当在项目B上时):rvm使用2.0.0@project_b_gemset(这将把项目B所需的所有宝石安装为另一组)

当你在项目C上时,你可以说rvm use 2.0.0@project_c_gemset,这将把项目C所需的所有宝石作为一个不同的集合安装。因此,您可以使用具有相同Ruby版本的不同宝石集。

总结:

rvm use ruby_version@gemset_version:

ruby_version允许基于Ruby版本进行隔离,gemset_version允许您在相同版本的Ruby中进行进一步的隔离。