【问题标题】:Bundler on Heroku won't run correct versionHeroku 上的 Bundler 无法运行正确的版本
【发布时间】:2019-01-07 18:34:13
【问题描述】:

我在 aws c9 中工作,我正在尝试将我的应用程序发送到 heroku,但它一直告诉我我运行的 bundler 版本错误,所以我在本地运行 gem install bundler 并得到 2.0.1,但在 Heroku 上它一直在运行 1.17.1,我无法更改此版本。

【问题讨论】:

  • 欢迎来到 Stack Overflow。我不认为我们可以做任何事情来帮助你解决这个问题。这个错误对我来说似乎是致命的。
  • 嗯,必须有一些方法来修复,因为我已经从头开始多次重新启动我的应用程序,现在试图让它工作......

标签: ruby-on-rails heroku gem-bundler


【解决方案1】:

Heroku 出于自身原因固定捆绑器版本:

Heroku 上的 Bundler 版本经过精心策划。需要在支持新的 Bundler 功能和稳定性之间取得平衡。我们在整理 Bundler 版本方面所做的工作确保了最大的稳定性,并避免了 Bundler 发生变化时的弃用和通知周期,或者修复了错误或 Heroku 修补了安全问题。

https://devcenter.heroku.com/articles/bundler-version

在撰写本文时,它们仍在 1.17.1 上,但这通常不成问题。

编辑

这可能是个问题,因为您的本地版本的 bundler 比这晚。如果您在本地运行 bundler 2+,情况尤其如此,因为这会创建一个 Gemfile.lock,它不允许从它安装旧版本。

如果是这种情况,那么您需要降级本地版本并重新捆绑:

local> gem uninstall bundler
local> gem install bundler -v 1.17.1 (or whatever version)
local> rm Gemfile.lock
local> bundle install

【讨论】:

  • 这是我得到的:
  • 远程:-----> Ruby 应用检测到远程:远程:!偏僻的: !您必须将此锁定文件与 Bundler 2 或更高版本一起使用。远程:!
  • 然后 Push 被拒绝,无法编译 Ruby 应用程序。
  • @DonaldLundgren 好的,如果是这种情况,那么您需要降级本地版本的捆绑程序。它将版本放入Gemfile.lock,显然bundler 2+ 创建了不能与旧版本一起运行的锁文件。在本地,执行如下操作:gem uninstall bundler ; gem install bundler -v 1.17.1 ; bundle update。如果 bundle update 失败,那么只需删除您的 Gemfile.lock 并再次输入 bundle install
  • 好的,但现在它不会预编译资产..预编译资产失败。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 2011-07-14
  • 1970-01-01
  • 2016-05-25
  • 1970-01-01
  • 2018-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多