有没有办法告诉RVM使用至少2.0.0的最新版本的Ruby?

时间:2014-11-06 14:18:16

标签: ruby rvm

我经常在Ruby中编写很多脚本,有时我会在Jenkins作业上运行这些脚本,或者将它们放在其他人可以在本地运行的地方。

我很乐意在.rvmrc中指定:

  • 使用已安装的最新版本的ruby
  • 除非它少于Ruby 2,否则会失败。

这样我可以依赖于Ruby 2语言的更改(例如,命名参数),但是如果已经安装了2.0.0或2.1.1或2.1.4,则不必强制运行脚本的环境来安装新的ruby。

1 个答案:

答案 0 :(得分:0)

您应该能够在.rvmrc文件中运行bash命令。因此,您可以检查最新版本并要求它,如果找不到,则默认为2.0.0版本。我不知道你在失败时的想法是什么,因为这个文件在终端会话启动时被加载并且中断不太好。

以下是我使用rbenv制作的示例,我没有安装rvm

RV=`rbenv versions | grep -E " 2\.\d+\.\d+\S*" | grep -o -E "2\.\d+\.\d+\S*" | sort | tail -n 1`
if [[ $RV ]]
  then echo $RV
  else echo "DEFAULT"
fi

这个例子只输出最高版本的2.x.x ruby​​它发现其他人说DEFAULT。对于RVM,以下内容可以在.rvmrc文件中使用,但我自己无法测试。我基于文档中的输出。您可能需要稍微调整一下。

RV=`rbenv versions | grep -E "ruby-2\.\d+\.\d+\S*" | grep -o -E "2\.\d+\.\d+\S*" | sort | tail -n 1`
if [[ $RV ]]
  then rvm use $RV
  else rvm use 2.0.0
fi