推送至Heroku失败:Ruby 2.3.4安装错误求助
解决Heroku推送时Ruby 2.3.4安装失败的问题
你的问题出在Heroku自动推断了Ruby版本——虽然你没在Gemfile里指定,但Rails 5.0.3默认对应的Ruby版本是2.3.4,而这个版本不仅已经不再被Heroku官方支持,还出现了安装包下载损坏的情况(日志里的gzip: stdin: unexpected end of file就是证据)。下面是两个靠谱的解决办法:
方案一:明确指定兼容的Ruby版本(优先推荐)
这个方法最简单直接,不需要调整太多配置:
- 在你的Gemfile最顶部添加一行Ruby版本声明,选一个和Rails 5.0.3兼容且Heroku支持的版本,比如2.6.10:
ruby '2.6.10' - 本地执行
bundle install更新你的Gemfile.lock文件 - 提交修改到git:
git add Gemfile Gemfile.lock git commit -m "Specify supported Ruby version 2.6.10 for Heroku deployment" - 重新推送到Heroku:
git push heroku master
方案二:升级Heroku应用的运行栈
你的日志显示当前用的是heroku-18栈,这个栈已经停止维护,旧栈上的旧Ruby版本安装包可能已经被移除。升级到新栈可以从根本上避免这类问题:
- 先查看当前应用的栈:
heroku stack - 设置为最新的稳定栈(比如heroku-22):
heroku stack:set heroku-22 - 重新推送代码到Heroku
注意:升级栈可能需要你调整部分依赖gem以适配新的系统环境,所以如果只是想快速解决当前推送问题,优先选方案一。
内容的提问来源于stack exchange,提问作者Stella Han
相关产品推荐
相关产品推荐

