【问题标题】:Is there a way to tell RVM to use the latest version of Ruby that is at least 2.0.0?有没有办法告诉 RVM 使用至少 2.0.0 的最新版本的 Ruby?
【发布时间】:2015-01-03 02:10:57
【问题描述】:

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

我想在 .rvmrc 中指定如下内容:

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

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

【问题讨论】:

  • 您是否尝试过任何 ruby​​ 解决方案而不是 .rvmrc?通常 RUBY_VERSION 常量存在于所有 ruby​​ 环境中。

标签: ruby rvm


【解决方案1】:

您应该能够在 .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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 1970-01-01
    • 2013-07-01
    • 2016-08-16
    相关资源
    最近更新 更多