0

我正在尝试让 Rails 2.3 应用程序在 Linux (Redhat) 服务器上与 Bundler/Torquebox 一起工作。该应用程序通过 JBoss 正常工作,但不会让我启动控制台。运行时出现以下错误jruby script/console

Bundler could not find compatible versions for gem "torquebox-web":
  In snapshot (Gemfile.lock):
    torquebox-web (2.3.1)

  In Gemfile:
    torquebox (= 2.3.1) ruby depends on
      torquebox-web (= 2.3.1) ruby

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.

当我运行jruby -S bundle update它时,它告诉我它正在使用所有正确版本的 gem,但控制台仍然无法工作。

我正在运行 Rails 2.3.18、Torquebox 2.3.1 和 Bundler 1.3.5。另外值得注意的是,这在我的 Windows 开发机器和任何 Rails 3.2 应用程序(使用jruby script/rails console)上都能正常工作。有什么想法可能导致这种情况吗?

4

1 回答 1

0

jruby script/console显然需要 JRubyPATH才能正常工作。如果未将其添加到 中PATH,则该命令将获取系统 Ruby(或 中可能包含的任何其他内容PATH)。

为了解决这个问题,我能够运行以下命令:

export PATH=$JRUBY_HOME/bin:$PATH
jruby script/console

正如西蒙指出的那样,在调用bundle exec之前使用jruby也是一个好主意:

bundle exec jruby script/console

如果您不想export每次都运行该命令,请将该环境变量添加到您设置所有其他环境变量的位置。

于 2014-08-06T15:49:37.263 回答