首页 > 解决方案 > 捆绑更新 Rails 解析为 6.0.1 候选版本

问题描述

我正在尝试将 Rails 从 5.2 更新到 6.0。在我的 Gemfile 中,我声明:

rails (~> 6.0) 被解析为 6.0.1.rc1

我的期望是我最终会得到 6.0.4 ~> 意味着乐观地解决到最新的 6.0.* 版本?)解决候选版本不是我想做的事情。

当然,我可以直接指定它,但我宁愿不将 Gemfile 绑定到特定版本,而是依靠 bundler 来正确解析它。

标签: ruby-on-railsbundler

解决方案


一种快速解决方法是更改​​您的 Gemfile。如果要保留乐观~> 6.0运算符,可以为版本添加第二个匹配器,如下所示(如果不能这样做,则会报告错误):

gem 'rails', '~> 6.0', '>= 6.0.4'

我经常使用这种模式来锁定安全补丁,而不会失去~>操作员的灵活性。

我猜想是有什么东西阻止了 bundler 使用更高版本的 Rails gem 版本——也就是说,你有一个依赖项将你的 gem 版本锁定为6.0.1. 如果上述方法不能解决问题,您可以Gemfile在您的问题中发布您的相关部分吗?并搜索Gemfile.lockrails查看您是否有任何需要 rails 6.0.1 而不是更高版本的 gem。


推荐阅读