You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:35:32