如何检查Ruby中的Gem管理RVM是否已正确安装?

时间:2011-04-21 19:38:59

标签: ruby-on-rails ruby rvm

是否有命令查看是否可能安装了RVM?我刚刚完成了RVM的设置过程,并希望对其进行测试。

另外,既然我已经(或者最终会有)RVM,我是否应该再使用apt-get来下载库/ gems并且总是通过RVM来实现?

3 个答案:

答案 0 :(得分:8)

rvm -v是一个很好的开始,然后根据安装说明(link)输入$ type rvm | head -1应该返回'rvm是一个函数'。至于第二部分是的,你应该坚持用rvm使用gem install(这里是gemname)安装宝石,这样可以省去很多麻烦

答案 1 :(得分:2)

首先,确保您的RVM已正确安装:

https://rvm.beginrescueend.com/rvm/install/

rvm info是了解一切进展顺利的好方法。

关于宝石,我会说通过RVM安装的Rubies来管理它们,它们有一些优点,比如gemsets:

https://rvm.beginrescueend.com/gemsets/

现在我现在总是在那些喜欢原生包装而不是宝石的人之间存在一些争议(并且有一些正当理由,但这是另一次的讨论),但我认为RVM在这里略微提升了规模,和Debian上Ruby包的问题一样:

http://www.lucas-nussbaum.net/blog/?p=617

答案 2 :(得分:1)

有几种情况:

  • 未安装RVM
  • RVM已安装但未使用(即其bindir已添加到PATH但未获取)
  • RVM已安装并使用但未加载(即它是来源的,但您是从脚本中检查的)
  • 安装并使用RVM

我发现测试所有4个案例的唯一方法是检查以rvm_开头的环境变量:

env | egrep -v '^PATH' | egrep '^rvm_path'

我们可以检查MY_RUBY_HOMEGEM_HOME等变量,但这些变量可以由用户手动覆盖,因此不能保证我们使用的是RVM。

如果您要在脚本中使用上述命令,可以像下面这样重新编写,并检查退出代码:

env | egrep -v '^PATH' | egrep -q '^rvm_path'

当然,如果您只是需要了解RVM是否存在于磁盘上且可以访问,您可以使用其他建议的更简单的方法。