假设我在这样的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版本?
答案 0 :(得分:0)
我是一个糟糕的管理员,这很可能违背RVM原则,但这不是一个明显的解决方案吗?
<强>符号链接强>!让shebang使用/usr/local/bin/ruby
(或类似的东西),并在每台机器上使该路径成为已安装的ruby的符号链接。
答案 1 :(得分:0)
#!/usr/bin/env ruby
然后确保你想要的红宝石在环境中