[英]AWS - Heroku - Ruby on Rails - Failed to install gems via Bundler
[英]Ruby: Failed to install gems via Bundler
我在将 ruby 应用程序部署到 Heroku 上时遇到问题。 当我推动它时,这是我得到的错误日志。 甚至我的 ruby -v 命令也不起作用。 甚至不能捆绑更新或捆绑安装。 我的 GemFile 读取 ('rails', '3.2.11'), (gem 'sass-rails', '~> 3.2.3') (gem 'coffee-rails', '~> 3.2.1') 和 (gem '注释','2.5.0')(宝石'better_errors')(宝石'binding_of_caller')。 对于混乱的格式,我深表歉意,但任何帮助都有效!
remote:
remote: current directory:
remote: /tmp/build_b6e9988ad2a1c287bcb95782c7a546cd/vendor/bundle/ruby/2.6.0/gems/json-1.8.0/ext/json/ext/generator
remote: /tmp/build_b6e9988ad2a1c287bcb95782c7a546cd/vendor/ruby-2.6.6/bin/ruby -I
remote: /tmp/build_b6e9988ad2a1c287bcb95782c7a546cd/vendor/ruby-2.6.6/lib/ruby/2.6.0 -r
remote: ./siteconf20200430-264-zpgrl6.rb extconf.rb
remote: creating Makefile
remote:
remote: current directory:
remote: /tmp/build_b6e9988ad2a1c287bcb95782c7a546cd/vendor/bundle/ruby/2.6.0/gems/json-1.8.0/ext/json/ext/generator
remote: make "DESTDIR=" clean
remote:
remote: current directory:
remote: /tmp/build_b6e9988ad2a1c287bcb95782c7a546cd/vendor/bundle/ruby/2.6.0/gems/json-1.8.0/ext/json/ext/generator
remote: make "DESTDIR="
remote: compiling generator.c
remote: In file included from generator.c:1:0:
remote: ../fbuffer/fbuffer.h: In function ‘fbuffer_to_s’:
remote: ../fbuffer/fbuffer.h:175:47: error: macro "rb_str_new" requires 2 arguments, but
remote: only 1 given
remote: VALUE result = rb_str_new(FBUFFER_PAIR(fb));
remote: ^
remote: ../fbuffer/fbuffer.h:175:20: warning: initialization makes integer from pointer
remote: without a cast [-Wint-conversion]
remote: VALUE result = rb_str_new(FBUFFER_PAIR(fb));
remote: ^~~~~~~~~~
remote: generator.c: In function ‘generate_json’:
remote: generator.c:840:25: error: ‘rb_cFixnum’ undeclared (first use in this function);
remote: did you mean ‘mFixnum’?
remote: } else if (klass == rb_cFixnum) {
remote: ^~~~~~~~~~
remote: mFixnum
remote: generator.c:840:25: note: each undeclared identifier is reported only once for
remote: each function it appears in
remote: generator.c:842:25: error: ‘rb_cBignum’ undeclared (first use in this function);
remote: did you mean ‘rb_cFixnum’?
remote: } else if (klass == rb_cBignum) {
remote: ^~~~~~~~~~
remote: rb_cFixnum
remote: generator.c: At top level:
remote: cc1: warning: unrecognized command line option ‘-Wno-self-assign’
remote: cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
remote: cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
remote: cc1: warning: unrecognized command line option ‘-Wno-cast-function-type’
remote: Makefile:244: recipe for target 'generator.o' failed
remote: make: *** [generator.o] Error 1
remote:
remote: make failed, exit code 2
remote:
remote: Gem files will remain installed in
remote: /tmp/build_b6e9988ad2a1c287bcb95782c7a546cd/vendor/bundle/ruby/2.6.0/gems/json-1.8.0
remote: for inspection.
remote: Results logged to
remote: /tmp/build_b6e9988ad2a1c287bcb95782c7a546cd/vendor/bundle/ruby/2.6.0/extensions/x86_64-linux/2.6.0/json-1.8.0/gem_make.out
remote:
remote: An error occurred while installing json (1.8.0), and Bundler cannot continue.
remote: Make sure that `gem install json -v '1.8.0' --source 'https://rubygems.org/'`
remote: succeeds before bundling.
remote:
remote: In Gemfile:
remote: coffee-rails was resolved to 3.2.2, which depends on
remote: railties was resolved to 3.2.11, which depends on
remote: rdoc was resolved to 3.12.2, which depends on
remote: json
remote:
remote: !
remote: ! Failed to install gems via Bundler.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
任何帮助表示赞赏,似乎 JSON 给我带来了最大的麻烦。
尝试运行bundle update json
或者如果它没有帮助,请尝试检查您的捆绑器版本是否与您的 rails 版本兼容
Rails 3.2(及其依赖项,例如您的json
gem 版本)与 Ruby 2.6 不兼容。 要解决此问题,您最好升级到更新版本的 Rails(例如 Rails 6.0)。 如果你有一个新的 Rails 应用程序,你应该直接从一个新的 Rails 版本开始。 如果您有一个现有的应用程序,您可能需要执行代码升级(这可能是密集的),以使您的应用程序与较新的 rails 版本兼容。
如果你必须使用这么旧的(并且长期不受支持的)Rails 版本,你需要使用旧版本的 Ruby。 在 Rails 3.2.11 中,最新支持的 Ruby 版本是 Ruby 1.9.2 (除了非常过时)仅在 Heroku 的Cedar-14
堆栈上受支持(反过来,它将在 2020 年 11 月 2 日至 2020 年 11 月 2 日至升级您的应用程序)
因此,如果您必须严格遵守 Rails 3.2,您至少应该升级到 3.2.22.5,您可以在其中使用 Ruby 2.2(两者都已不再支持)。 在 Heroku 上,您需要使用Heroku-16
堆栈,该堆栈支持 Ruby 到版本 2.2.10。
尽管如此,您绝对应该尝试升级您的堆栈以使用不到 7 年前更新的软件版本......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.