【发布时间】:2010-04-13 19:30:22
【问题描述】:
我最近在一台也安装了 ruby 的机器上安装了 jruby。当我这样做时
rake something 现在似乎正在使用 jruby 解释器。我想 rake 使用 ruby 解释器。如有任何帮助,我将不胜感激。
【问题讨论】:
我最近在一台也安装了 ruby 的机器上安装了 jruby。当我这样做时
rake something 现在似乎正在使用 jruby 解释器。我想 rake 使用 ruby 解释器。如有任何帮助,我将不胜感激。
【问题讨论】:
你在哪个平台上? which rake、which ruby、which jruby 的输出是什么?你是如何安装 jruby 的?
我要冒昧地猜测一下,无论您安装了 jruby,它都会覆盖您的“纯”ruby 二进制文件。根据平台和 jruby 的安装方式,有多种方式可能会发生这种情况,例如PATH修改,更新替代等。
我的/usr/bin/rake 开头为:
#!/usr/bin/env ruby
因此,如果我修改了我的 PATH 以便首先出现 jruby 安装目录并且 jruby 可执行文件被别名为 ruby,那么 rake 调用 /usr/bin/env ruby 调用 jruby。
最简单的解决方案(在 bash shell 中)是:
alias rake='/usr/bin/ruby /usr/bin/rake'
缺点是这个解决方案只会帮助你,如果你试图从 shell 提示符以外的地方调用 rake,它可能会也可能不会可用。
我希望这足以为您指明正确的方向。
【讨论】:
检查您的 PATH 环境变量(在 *nix 上为 $PATH,在 Windows 上为 %PATH%)。当你输入 'rake' 时,系统会选择它在你的 PATH 中找到的第一个二进制文件,所以如果 jruby 出现得更早,将使用 jruby 的 rake 版本。
解决办法:调整PATH变量,将jruby放在PATH末尾。
【讨论】: