Go mod checksum mismatch 错误完美解决
Go mod checksum mismatch 错误完美解决
这个错误是 Go 模块校验和不匹配,核心原因:本地 go.sum 里记录的包哈希值,和实际下载的包哈希对不上,通常是缓存损坏、go.sum 过时、代理/源异常导致的。
一键修复方案(按顺序执行,99% 能解决)
打开终端,直接复制执行这 4 条命令:
# 1. 清理 Go 模块缓存(最关键)
go clean -modcache
# 2. 删除旧的校验和文件
rm go.sum
# 3. 重新下载依赖(强制拉取正确版本)
go mod tidy
# 4. 验证依赖完整性
go mod verify
分步解释(原理)
-
go clean -modcache
清空 Go 本地缓存的所有包,彻底删除损坏的v0.20.6版本文件。 -
rm go.sum
删除旧的校验和文件,避免残留错误的哈希值。 -
go mod tidy
重新解析依赖、下载正确版本、生成全新的go.sum。 -
go mod verify
校验所有依赖包完整性,确保没有问题。
如果还是报错(备用方案)
方案1:切换官方 GOPROXY(国内推荐)
# 临时设置(当前终端生效)
go env -w GOPROXY=https://goproxy.io,direct
# 重新拉取
go mod tidy
方案2:强制指定版本重新拉取
go get github.com/google/go-containerregistry@v0.20.6
go mod tidy
方案3:检查网络/代理
关闭本地梯子/VPN,再执行 go mod tidy,部分网络代理会篡改包内容导致校验失败。
总结
- 优先执行:
go clean -modcache && rm go.sum && go mod tidy - 无效就切换 GOPROXY 或关闭网络代理
- 核心是清理缓存+重新生成校验和

浙公网安备 33010602011771号