升级Ruby至2.5.1后Heroku仍尝试安装1.9.3的问题求助
解决Heroku部署时仍尝试安装Ruby 1.9.3的问题
看起来你已经做了不少正确配置,但Heroku还是揪着旧Ruby版本不放,大概率是还有隐藏的配置文件或者缓存在搞鬼,试试下面这些步骤:
检查并添加/修改
.ruby-version文件
Heroku优先读取项目根目录的.ruby-version文件来确定Ruby版本,而非.rbenv-version。如果你的项目里没有这个文件,或者之前的旧文件还写着1.9.3,就会导致识别错误。直接在根目录创建或修改.ruby-version,内容仅写2.5.1即可。重新生成Gemfile.lock文件
虽然你提到Gemfile.lock显示了正确的Ruby版本,但为了彻底清除旧配置残留,建议重新生成:# 删除旧的锁文件 rm Gemfile.lock # 重新执行bundle安装,生成新锁文件 bundle install # 将新锁文件提交到git git add Gemfile.lock git commit -m "Refresh lock file for Ruby 2.5.1 & Rails 5.2.0"清理Heroku构建缓存
Heroku会缓存之前的构建依赖,可能残留了旧Ruby版本的配置,强制清理缓存再部署:heroku builds:cache:purge -a nbmen-staging完成后重新推送代码到Heroku。
检查并升级Heroku应用栈
错误日志里提到了heroku-16,而Ruby 2.5.1需要Heroku-18及以上版本的栈支持。先查看当前应用栈:heroku stack -a nbmen-staging如果是旧栈,升级到兼容的版本:
heroku stack:set heroku-18 -a nbmen-staging(注:升级栈后需要重新部署,确保你的应用适配新栈环境)
确认使用官方Ruby Buildpack
第三方Buildpack可能存在异常行为,重置为官方Ruby Buildpack:heroku buildpacks:set heroku/ruby -a nbmen-staging
完成以上步骤后重新推送代码,Heroku应该就能正确识别Ruby 2.5.1并完成部署了。
内容的提问来源于stack exchange,提问作者Yang Zeng
相关产品推荐
相关产品推荐

