执行bundle install遇Bundler Ruby版本兼容错误,求解决方案
问题根源与解决方案
核心冲突
你遇到的报错本质是指定的Ruby版本(2.2.5)与Gemfile中多个gem的版本要求完全不兼容:
activerecord ~> 6.1要求Ruby版本至少为2.5.0,而你用的是2.2.5,这是最直接的冲突点;sinatra ~> 2.1、sinatra-contrib ~> 2.1要求Ruby 2.4.0+,同样不支持2.2.5;rake ~> 13.0要求Ruby 2.3.0+,也和2.2.5不兼容。
Ruby 2.2.5是2016年的版本,早已停止官方安全维护,不建议继续使用。以下提供两种解决方案:
方案一:升级Ruby版本(推荐)
这是最稳妥的解决方式,既能解决版本冲突,也能获得安全更新:
- 将Ruby版本升级至2.7.x系列(是支持activerecord 6.1的最低稳定版本,且已获得长期支持);
- 修改Gemfile开头的Ruby版本声明:
ruby '2.7.8' - 执行命令:
bundle install
方案二:降级gem以兼容Ruby 2.2.5(不推荐)
若因特殊原因必须保留Ruby 2.2.5,需将所有gem降级到兼容该版本的最新版本:
修改后的Gemfile示例:
ruby '2.2.5' source 'https://rubygems.org' gem 'sinatra', '~> 1.4.8' gem 'sinatra-contrib', '~> 1.4.7' gem 'webrick', '~> 1.7.0' gem 'sinatra-activerecord', '~> 1.7.2' gem 'activerecord', '~> 4.2.11' gem 'pg', '~> 0.21.0' gem 'rake', '~> 12.3.3' gem 'bcrypt', '~> 3.1.11' gem 'sinatra-flash' group :development do gem 'debase' gem 'fastri' gem 'rcodetools' gem 'rubocop', '~> 0.59.2' gem 'ruby-debug-ide' end
修改完成后执行:
bundle install
若仍有冲突,可尝试执行bundle update强制拉取兼容版本。
内容的提问来源于stack exchange,提问作者Tatsunori Ono
相关产品推荐
相关产品推荐

