调用不同的ruby解释器

调用不同的ruby解释器,ruby,vagrant,berkshelf,Ruby,Vagrant,Berkshelf,我在一个Ruby脚本(特别是一个Vagrant文件)中运行,我想调用另一个Ruby可执行文件(特别是针对系统Ruby安装的berks)。我知道我可以做像这样的事情 PATH=/usr/bin GEM_PATH=/var/lib/ruby/1.9.1 berks ... 但是,这不是很方便携带。(例如,不同的机器需要不同的GEM_路径)。那么,我如何从Ruby脚本中调用针对不同Ruby环境安装的脚本呢?嗯,手头的任务听起来不是很可移植,因为它存在的全部原因是不同Ruby安装在不同位置的系统特有的

我在一个Ruby脚本(特别是一个Vagrant文件)中运行,我想调用另一个Ruby可执行文件(特别是针对系统Ruby安装的berks)。我知道我可以做像这样的事情

PATH=/usr/bin GEM_PATH=/var/lib/ruby/1.9.1 berks ...

但是,这不是很方便携带。(例如,不同的机器需要不同的GEM_路径)。那么,我如何从Ruby脚本中调用针对不同Ruby环境安装的脚本呢?

嗯,手头的任务听起来不是很可移植,因为它存在的全部原因是不同Ruby安装在不同位置的系统特有的怪癖。并不是所有的系统都有这些特定的Ruby版本

在我看来,您最好的选择可能是允许用户设置某些环境变量(我不知道,$BERKS\u SUBRUBY\u PATH或其他什么),并在设置好的情况下使用它们。这样一来,任何需要使用该变通方法的人都可以轻松地做到这一点,但您并不是强迫每个人都使用相同的系统配置