我需要在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)
});
但它不起作用。有什么想法吗?
答案 0 :(得分: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
运行它会在~/.rvm/bin
中生成ruby存根,或者如果您已在系统范围内安装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)
});