1

我需要从 node.js 应用程序中运行一个 ruby​​ 脚本。该脚本需要 Ruby 2.0,但是当我尝试运行该脚本时,它一直在运行 1.8 并且失败。我努力了

child_process.exec("rvm use 2.0.0;ruby file.rb", {cwd: 'directory_name'}, function(err, stdout){
  console.log(stdout)
});

但它不起作用。有任何想法吗?

4

1 回答 1

2

在执行 ruby​​ 之前切换 gemset/ruby 版本的替代方法是生成一个 RVM 包装器来为您完成这项工作。

rvm use 2.0.0
rvm wrapper 2.0.0@<gemset> <prefix> # gesmset and prefix are optional but I'd use them for clarification

运行它会生成一个 ruby​​ 存根,~/.rvm/bin或者,如果您已经安装了 RVM 系统范围,则在/usr/local/rvm/bin. 这个存根在执行时会自动切换到指定的 ruby​​-version/gemset。

您的节点脚本可能如下所示:

child_process.exec("~/.rvm/bin/<prefix>_ruby file.rb", {cwd: 'directory_name'}, function(err, stdout){
  console.log(stdout)
});
于 2013-09-14T07:01:34.133 回答