(Ruby)是否可以让shebang拥有ruby的“备份”版本?

时间:2015-09-25 15:22:03

标签: ruby rvm shebang

假设我在这样的ruby脚本中有一个shebang:

#!/usr/local/rvm/rubies/ruby-2.0.0-p647/bin/ruby

但脚本正在四个不同的服务器上运行,并由一个git repo管理(我宁愿不用无限分支)。

其中一台服务器有2.0.0-p647,其中一台有2.0.0-p598,一台有2.0.0-p643,另一台只有ruby 2.1.1。该脚本需要在正则表达式中使用负向lookbehinds,这意味着它必须使用2.0.0或更高版本。

这否定了使用默认值的能力,因为至少有一个服务器上的默认安装是1.9.3,我无法更改默认值或更改默认值。

有没有办法设置一个shebang,如果首选的那个没有,它会“退回”不同的ruby版本?

2 个答案:

答案 0 :(得分:0)

我是一个糟糕的管理员,这很可能违背RVM原则,但这不是一个明显的解决方案吗?

<强>符号链接!让shebang使用/usr/local/bin/ruby(或类似的东西),并在每台机器上使该路径成为已安装的ruby的符号链接。

答案 1 :(得分:0)

#!/usr/bin/env ruby 

然后确保你想要的红宝石在环境中