我有一个使用 NSIS 制作的安装程序,它在某个时候运行以下 3 个命令:
...
SetOutPath "$INSTDIR\Application"
nsExec::ExecToLog "jruby -S bundle exec rake db:create RAILS_ENV=production"
nsExec::ExecToLog "jruby -S bundle exec rake db:migrate RAILS_ENV=production"
nsExec::ExecToLog "jruby -S bundle exec rake db:seed RAILS_ENV=production"
...
安装程序将 JRuby 与所有已安装的必需 gem 打包在一起,并在执行任何 jruby
命令之前将 JRuby 添加到 Path 环境变量。
当我尝试在安装了 Ruby 的机器上运行我的安装程序时出现问题:当安装程序开始执行上述命令时,它失败,返回一些错误,如:C:\Ruby192\RUBYOPT -F (RuntimeError) 中的 bin\ruby.exe 无效开关
我检查了 Path 环境变量,它看起来很像这样:
C:\Ruby192\bin; ... ;C:\Program Files (x86)\MyApplication\JRuby\jruby-1.6.3\bin
我的猜测是 Ruby 和 JRuby 之间存在某种冲突。但我不知道如何解决这个问题。 任何帮助将不胜感激。
谢谢。
最佳答案
您是否考虑过使用 RVM:http://beginrescueend.com/ .这样你就可以同时运行 ruby 和 jruby 而不会相互冲突。
关于Ruby/JRuby 冲突 - RUBYOPT -F {RuntimeError} 中的无效开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7075386/