这是一个简单的问题,但我似乎无法在文档中找到一个好的答案(我是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。因此我的问题......
答案 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显示已更改的设置。