我目前正在开发一个使用sidekiq-batch gem的Rails应用程序。在发现sidekiq-batch的运行时依赖项中存在与sidekiq相关的漏洞后,我试图将运行时依赖项更新到推荐的版本(6.4.1到7.1.2之间)。
Gemfile
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之后
Gemfile
gem 'sidekiq-batch', '~> 0.1.9'
型
Gemfile.lock
sidekiq-batch (0.1.9)
sidekiq (>= 3)
型
我尝试在Gemfile.lock中手动更新版本。运行bundle update 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
型
1条答案
按热度按时间jckbn6z71#
您的
Gemfile
中的这行字符串
意味着Bundler仅允许安装大于或等于
5.2.8
且小于5.3
的sidekiq
版本。这解释了为什么Bundler无法将
sidekiq
更新到6.4.1
或任何7.x
版本。除非您有理由不允许Bundler更新gem,否则我建议您取消版本限制。一个很好的理由可能是,例如,您知道新版本中的一个重大更改,因此无法进一步升级。
在您的情况下,我建议将这些行更改为:
型
您甚至可能想尝试从
sidekiq
中完全删除版本约束,但这可能会失败,因为它的7.0
版本引入了一些破坏性的更改。请参阅以下文档: