执行go list -m -u all命令出现go.sum更新提示的问题咨询
解释与解决方法
提示含义拆解
-mod=readonly并非go list的专属参数:Go的全局模块控制flag(如-mod)对所有go子命令生效,这个模式可能是通过环境变量GOFLAGS全局配置的,或是当前项目的默认模块设置。- 提示核心逻辑:
go list -m -u all会检查所有依赖的可用更新,过程中发现部分依赖的校验和需要写入go.sum文件,但当前模块处于只读模式(readonly),禁止修改go.mod或go.sum,因此触发该提示。
处理方案
- 临时跳过只读模式执行命令:直接在原命令后追加
-mod=mod,允许本次操作修改模块文件,命令如下:
执行后Go会自动更新go list -m -u -mod=mod allgo.sum到最新状态,后续再运行原命令即可正常执行。 - 手动同步校验和:先执行
go mod tidy,它会自动整理项目依赖并更新go.sum,完成后再运行go list -m -u all就不会再出现该提示。 - 调整全局模块模式(谨慎使用):如果需要长期默认允许修改模块文件,可设置环境变量
GOFLAGS="-mod=mod",但该设置会影响所有go命令,按需配置即可。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

