无法将 sidekiq-batch 运行时依赖项更新为推荐版本

问题描述 投票:0回答:1

我目前正在开发一个使用 sidekiq-batch gem 的 Rails 应用程序。在识别出与 sidekiq 相关的 sidekiq-batch 运行时依赖项中的漏洞后,我尝试将运行时依赖项更新为推荐版本(6.4.1 到 7.1.2 之间)。

宝石文件

gem 'sidekiq-batch', '~> 0.1.6'

易受攻击的版本>=3

Gemfile.lock

sidekiq-batch (0.1.9)
  sidekiq (>= 3)

为了更新运行时依赖项,我尝试更新 sidekiq-batch gem 版本以更新其运行时依赖项,但使用最新版本的 sidekiq-batch gem,我仍然获得其运行时依赖项 sidekiq 的相同版本。

更新 sidekiq-batch gem 后

宝石文件

gem 'sidekiq-batch', '~> 0.1.9'

Gemfile.lock

sidekiq-batch (0.1.9)
  sidekiq (>= 3)

我尝试在 Gemfile.lock 中手动更新版本。运行捆绑更新 sidekiq-batch 后,它会从 Gemfile.lock 文件中删除手动更改。

如果您能提供有关如何解决这种情况并成功将 sidekiq-batch 的运行时依赖项更新为推荐版本,同时适应现有 sidekiq gem 版本的见解或指导,我将不胜感激。谢谢你。

这是我的 Gemfile

source 'https://rubygems.org'
git_source(:github) {|repo| "https://github.com/#{repo}.git" }

ruby '2.6.6'

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

gem 'puma','~> 6.0', '>= 6.0.1'

gem 'redis', '~> 4.5', '< 4.6.0'

gem 'sidekiq', '~> 5.2.8'
gem 'sidekiq-batch', '~> 0.1.6'
gem 'sidekiq-failures', '~> 1.0'

group :development, :test do
  gem 'rspec-rails'
  gem 'pry'
end

group :test do
  gem 'fakeredis'
end
ruby-on-rails ruby rubygems gemfile gemfile.lock
1个回答
0
投票

您的

Gemfile

中的这一行
gem 'sidekiq', '~> 5.2.8'

表示Bundler只允许安装大于等于

sidekiq
且小于
5.2.8
5.3
版本。

这解释了为什么 Bundler 无法将

sidekiq
更新到
6.4.1
或任何
7.x
版本。

除非您有理由不允许 Bundler 更新 gem,否则我建议删除该版本限制。例如,一个很好的理由可能是您知道新版本中的重大更改,因此无法进一步升级。

就您而言,我建议将这些行更改为:

gem 'sidekiq', '~> 6.4'
gem 'sidekiq-batch'
gem 'sidekiq-failures'

您甚至可能想尝试完全从

sidekiq
中删除版本约束,但这可能会失败,因为它的
7.0
版本引入了一些重大更改。

请参阅以下文档:

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.