M3 Mac上Gemfile.lock自动新增行问题求助
解决Gemfile.lock自动新增arm64-darwin-23平台行的问题
问题原因
Bundler 2.4.22会自动检测当前运行的系统平台,只要执行任何和bundler相关的操作(哪怕是bundle check、bundle install这类常规命令),都会把当前系统对应的平台写入Gemfile.lock。如果你的机器是macOS Ventura(对应darwin-23),每次触发bundler操作就会自动添加这一行。
解决办法
1. 在Gemfile中指定固定平台
直接在Gemfile里声明允许的平台,Bundler就不会自动新增其他平台:
# 在Gemfile顶部添加 platforms [:arm64-darwin-22, :x86_64-darwin-22, :x86_64-linux] # 后续的gem依赖按需求编写 gem 'rails', '~> 7.0' # ...其他gem
保存后执行bundle install,Gemfile.lock里的PLATFORMS就会被固定为你指定的列表,不会再自动新增。
2. 禁用Bundler自动检测平台的功能
执行以下命令关闭自动平台检测:
bundle config set auto_platform false
这个配置会保存在本地的.bundle/config里,之后Bundler就不会再自动向Gemfile.lock添加新的平台行了。
3. 排查后台触发Bundler的进程
虽然你已经关闭了Spring和Rails服务器,但一些IDE(比如RubyMine、VS Code的Ruby插件)可能会在后台自动运行bundler命令做依赖检查。可以暂时关闭IDE的自动依赖同步功能,或者退出IDE后手动撤销变更,观察是否还会自动新增该行,以此确认是否是IDE导致的。
内容的提问来源于stack exchange,提问作者user22544957
相关产品推荐
相关产品推荐

