rvm和rvm使用之间的区别

时间:2011-09-12 17:21:59

标签: ruby ruby-on-rails-3 rvm

这是一个简单的问题,但我似乎无法在文档中找到一个好的答案(我是RVM的新手)。

rvm使用ruby-1.9.2-head@rails3和rvm ruby​​-1.9.2-head@rails3有什么区别?

试图为2个项目(rails 3.1和3.0.9)设置我的gemsets的两个版本,并打算这样做:

rvm gemset create proj1 proj2
rvm 1.9.2-head@proj1
gem install rails -v 3.1

rvm 1.9.2-head@proj2
gem install rails -v 3.0.9

然后试图找出是否使用

rvm 1.9.2-head@proj1 

rvm use 1.9.2-head@proj1

切换到该项目/ gemset。因此我的问题......

2 个答案:

答案 0 :(得分:4)

AFAIK,单独的rvm命令用于针对多个版本的ruby / ruby​​ gems运行某些​​东西。例如,您可以指定rvm 1.9.2,1.8.7 test.rb,它将使用两个rubies执行test.rb。

相比之下,rvm use设置您当前的shell环境以使用您传递的任何ruby。所以,如果你rvm use 1.9.2@proj1,你的下一个ruby命令可以只是ruby whatever.rb,rvm将使用你的proj1 gem set选择ruby 1.9.2。

所以,总结一下,当你想针对多个红宝石运行时使用rvm 1.9.2,1.8.7 something.rb,当你想设置当前shell将使用的ruby时使用rvm use 1.9.2

修改

这在评论中看起来很糟糕,所以我正在编辑。我从这些rvm命令输出的内容如下:

## RVM use will set the ruby for this shell
[Moe:~]$ rvm use 1.9.2
Using /Users/nunya/.rvm/gems/ruby-1.9.2-p290
[Moe:~]$ ruby -e 'puts `rvm current`'
ruby-1.9.2-p290

## rvm without the use will execute the command with all the rubies passed, 
## but will leave the shells ruby alone.
[Moe:~]$ rvm 1.9.2,1.9.3 -e 'puts `rvm current`'
ruby-1.9.2-p290
ruby-1.9.3-preview1
[Moe:~]$ ruby -e 'puts `rvm current`'
ruby-1.9.2-p290
# with a single ruby:
[Moe:~]$ rvm 1.9.3 -e 'puts `rvm current`'
ruby-1.9.3-preview1
[Moe:~]$ rvm current
ruby-1.9.2-p290

答案 1 :(得分:1)

之间的区别
rvm use 1.9.2

只是简单

rvm 1.9.2

只是RVM是否会显示有关从一个ruby | ruby​​ @ gemset到另一个的更改的信息。 'use'关键字只会导致RVM显示已更改的设置。