gpt4 book ai didi

heroku - 在 Heroku 上使用 jRuby cext 构建 gem

转载 作者:行者123 更新时间:2023-12-03 17:19:55 25 4
gpt4 key购买 nike

我正在尝试使用 JRuby Heroku buildpack (https://github.com/jruby/heroku-buildpack-jruby) 来运行一个简单的测试应用程序。

但是,似乎无法编译带有 C 扩展名的 gem。例如,在执行“git push heroku”时,没有C 扩展名的gems 安装成功,但随后...

   Using activerecord (3.1.3) 
Using activeresource (3.1.3)
Using bouncy-castle-java (1.5.0146.1)
Using bson (1.7.0)
Installing bson_ext (1.7.0) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

/tmp/build_10vcxrs9ayvxf/jruby/bin/jruby extconf.rb
NotImplementedError: C extension support is not enabled. Pass -Xcext.enabled=true to JRuby or set JRUBY_OPTS or modify .jrubyrc to enable.

(root) at /tmp/build_10vcxrs9ayvxf/jruby/lib/ruby/shared/mkmf.rb:8
require at org/jruby/RubyKernel.java:1019
(root) at /tmp/build_10vcxrs9ayvxf/jruby/lib/ruby/shared/rubygems/custom_require.rb:1
(root) at extconf.rb:1


Gem files will remain installed in /tmp/build_10vcxrs9ayvxf/vendor/bundle/jruby/1.9/gems/bson_ext-1.7.0 for inspection.
Results logged to /tmp/build_10vcxrs9ayvxf/vendor/bundle/jruby/1.9/gems/bson_ext-1.7.0/ext/cbson/gem_make.out
An error occurred while installing bson_ext (1.7.0), and Bundler cannot continue.
Make sure that `gem install bson_ext -v '1.7.0'` succeeds before bundling.
Dependencies installed

看到上面给出的建议后,我开始创建 JRuby buildpack 的修改版本,可以在这里找到: https://github.com/grahamdaley/heroku-buildpack-jruby-cext

此 buildpack 与原始 buildpack 之间的唯一区别是我现在已将 JRUBY_OPTS 设置如下:

JRUBY_OPTS="--1.9 -Xcext.enabled=true -J-Xmx400m"

但是,这似乎根本没有任何区别,我仍然遇到相同的错误。

任何提示?是否可以(并且会有所帮助)在 buildpack 中的某处添加 .jrubyrc 文件?

最佳答案

您应该简单地配置 JRUBY_OPTS 而不是设置自定义构建包:

heroku config:add JRUBY_OPTS="--1.9 -Xcext.enabled=true -J-Xmx400m"

话虽如此 - 将 C-ext 与 JRuby 一起使用可能是个坏主意

由于 BSON gem(它有 native JRuby 版本),您绝对不需要 C-ext - 使用 JRuby 在本地编辑您的 Gemfile 和/或重新捆绑( rm Gemfile.lock && bundle )可能会为您解决这个问题......

关于heroku - 在 Heroku 上使用 jRuby cext 构建 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13096735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com