源码编译Ruby 3.3.0dev,Gemfile指定>=3.3.0仍报错如何解决?
解决Ruby 3.3.0.dev与Bundler版本匹配问题
问题根源:你使用的是预发布版本的Ruby(3.3.0dev),Bundler默认不会将预发布版本纳入
>= 3.3.0的匹配范围,它会判定3.3.0.dev版本低于正式版3.3.0,因此触发版本不匹配错误。修复步骤:
- 修改Gemfile中的Ruby版本声明,显式允许预发布版本:
ruby ">= 3.3.0", allow_prerelease: true - 重新执行依赖安装命令:
bundle install - 若仍有问题,先清空Bundler缓存再重试:
bundle clean --force bundle install
- 修改Gemfile中的Ruby版本声明,显式允许预发布版本:
补充说明:源码编译的Ruby开发版本(带dev后缀)属于预发布版本范畴,Bundler的版本约束逻辑默认只匹配正式发布版,必须通过
allow_prerelease: true参数开启预发布版本识别,才能让3.3.0dev符合>=3.3.0的版本要求。
内容的提问来源于stack exchange,提问作者rubynt
相关产品推荐
相关产品推荐

