2014-11-06 68 views
3

我经常在Ruby中做很多脚本编写,有时我在Jenkins作业上运行这些脚本,或者将它们放在别处可以在本地运行的地方。有没有办法告诉RVM使用至少2.0.0的最新版本的Ruby?

我很想在.rvmrc类似指定:

  • 使用最新版本的安装
  • 除非是小于2的Ruby红宝石的,在这种情况下失败。

这样我就可以依靠Ruby 2语言的变化(例如命名参数),但不强制运行脚本的环境安装新的ruby,如果它已经有2.0.0或2.1.1或2.1。 4安装。

+0

你试过任何ruby解决方案,而不是.rvmrc吗?通常RUBY_VERSION常量在所有的ruby环境中都存在。 – bibstha 2014-11-06 21:05:19

回答

0

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

这是我使用rbenv sine制作的一个示例,我没有安装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 
相关问题