有没有一种方法可以告诉RVM使用最新的Ruby版本,至少要2.0.0以上?

3
我经常使用Ruby进行脚本编写,有时我会在Jenkins任务中运行这些脚本或将它们放在其他人可以在本地运行的位置。
我希望能够在.rvmrc文件中指定以下内容:
  • 使用已安装的最新版本的Ruby
  • 除非它小于Ruby 2,否则失败。
这样我就可以依赖Ruby 2的语言变化(例如,命名参数),但不会强制要求运行脚本的环境安装新的Ruby,如果它已经安装了2.0.0或2.1.1或2.1.4。

你有尝试过使用 Ruby 解决方案而不是 .rvmrc 吗?通常 RUBY_VERSION 常量存在于所有 Ruby 环境中。 - Bibek Shrestha
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接