【问题标题】:Migrating from ruby to jruby从 ruby​​ 迁移到 jruby
【发布时间】:2020-07-07 19:43:38
【问题描述】:

我正在从 ruby​​-2.5.7 迁移到 jruby-9.2.12.0,当我在更改 ruby-version & gemfile 后运行 bundle install 时,我在 pg-gem 中遇到错误。

Installing pg 1.2.3 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/kush/.rvm/gems/jruby-9.2.12.0/gems/pg-1.2.3/ext
/Users/kush/.rvm/rubies/jruby-9.2.12.0/bin/jruby -I
/Users/kush/.rvm/rubies/jruby-9.2.12.0/lib/ruby/stdlib -r
./siteconf20200707-6808-16ipijl.rb extconf.rb
checking for pg_config... yes
Using config values from /usr/local/bin/pg_config
RuntimeError: The compiler failed to generate an executable file.
You have to install development tools first.

try_do at
/Users/kush/.rvm/rubies/jruby-9.2.12.0/lib/ruby/stdlib/mkmf.rb:456
try_link0 at
/Users/kush/.rvm/rubies/jruby-9.2.12.0/lib/ruby/stdlib/mkmf.rb:541
try_link at
/Users/kush/.rvm/rubies/jruby-9.2.12.0/lib/ruby/stdlib/mkmf.rb:556
     <main> at extconf.rb:40
*** extconf.rb failed ***

我已经安装了开发者工具,并且我的 Mac 中也有 Xcode。

非常感谢任何帮助!

【问题讨论】:

    标签: ruby-on-rails ruby jruby


    【解决方案1】:

    pg gem 高度特定于 MRI(即“标准”红宝石),并且与 JRuby 不兼容。因此,您应该在此处使用不同的数据库适配器。

    JRuby 中最常用的适配器是基于JDBC 的。大多数数据库数据库类型都有可用于 JRuby 的包装器。要使用与 Rails 一起使用的 PostgreSQL 适配器,您可以将它与 activerecord-jdbcpostgresql-adapter gem 一起使用。为此,更换

    gem "pg"
    

    在您的Gemfile 上添加

    gem "activerecord-jdbcpostgresql-adapter"
    

    有关配置和使用详情,请参阅https://github.com/jruby/activerecord-jdbc-adapter/blob/master/README.md

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多