【问题标题】:bundle install hangs in Jruby with rails 4.2bundle install 在带有 rails 4.2 的 Jruby 中挂起
【发布时间】:2014-11-16 21:24:39
【问题描述】:

我在标准的 Digital Ocean Ubuntu 14.04 droplet 上运行。

我使用 rails 4.2.0.beta4 安装了我的 rails 应用程序,并使用通过 RVM 安装的 mri ruby​​ 2.1.4 并使用我称为 r420 的 gemset 进行了第一次捆绑安装。在对 rails 应用程序进行了一些小的编辑之后,我安装了 jruby 1.7.16.1 并设置了一个名为 j420 的 gemset,然后尝试运行捆绑安装。每次我尝试使用 jruby 运行捆绑安装时,捆绑器都会挂起,不会产生错误。我尝试按照 Heroku 在 Gemfile 中的建议通过添加“ruby '1.9.3', :engine => 'jruby', :engine_version => '1.7.16.1'”行来定义 ruby​​ 依赖项。这也挂了。

我在该站点的另一个条目中看到有人在早期版本的 rails 中建议可能将源更改为 ':rubygems'。这只导致了一条错误消息,指出不存在这样的域。

否则我的应用程序在 MRI 中可以正常工作,但如果可能的话,我真的想让 jRuby 正常工作。当然,我有兴趣制作一个线程安全的 Rails 应用程序。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 bundler jruby jrubyonrails


    【解决方案1】:

    首先,“小改动”可能不足以切换 Rails(尤其是 ActiveRecord)... C 驱动程序使用 JRuby 不支持的 MRI API,您需要设置执行以下操作的 JDBC 适配器使用“本机”Java API 相同,例如对于 MySQL:

    gem 'mysql2', platform: :mri
    gem 'jdbc-mysql', platform: :jruby
    gem 'activerecord-jdbc-adapter', platform: :jruby
    

    注意:截至本答案发布时,AR-JDBC 不支持 Rails 4.2(他们进行了很多内部 AR 重构,可能需要一段时间才能到 finish up

    【讨论】:

    • 谢谢!我不知道这是个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多