Rails 升级 4.2 -> 5 - Bundler 无法解析确切的 gem 版本

问题描述

我在升级各种 gem 时遇到此错误,因为我正在尝试从 4.2.11.1 移动到 5.0.1。动作包的示例错误:

Bundler could not find compatible versions for gem "actionpack":
  In Gemfile:
    rails (= 5.0.1) was resolved to 5.0.1,which depends on
      actionpack (= 5.0.1)

    simple_form (= 5.0.0) was resolved to 5.0.0,which depends on
      actionpack (>= 5.0)

    twitter-bootstrap-rails (= 4.0.0) was resolved to 4.0.0,which depends on
      actionpack (~> 5.0,>= 5.0.1)

就我对 gem 版本的理解而言,这应该不是错误,因为 5.0.1 版本满足所有依赖项。有人可以解释我如何摆脱此类错误吗?我在升级时遇到很多这样的错误

解决方法

这是一项乏味的任务,并不总是那么容易。

我建议您遵循以下方法:

  1. 如果可能,请尝试删除 Gemfile.lock 并尝试从 Gemfile 中删除 gem 版本,除非您特别需要该版本。 (您可能希望保持 railsdeviseaasm 的版本锁定,因为可能会有一些重大变化)
  2. 运行bundle install
  3. 在这一步,您仍有可能在版本和依赖项中遇到一些冲突
  4. 您必须打开并检查依赖项的特定 gem

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...