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

分步解释(原理)

  1. go clean -modcache
    清空 Go 本地缓存的所有包,彻底删除损坏的 v0.20.6 版本文件。

  2. rm go.sum
    删除旧的校验和文件,避免残留错误的哈希值。

  3. go mod tidy
    重新解析依赖、下载正确版本、生成全新的 go.sum

  4. 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,部分网络代理会篡改包内容导致校验失败。


总结

  1. 优先执行:go clean -modcache && rm go.sum && go mod tidy
  2. 无效就切换 GOPROXY 或关闭网络代理
  3. 核心是清理缓存+重新生成校验和
posted @ 2026-04-11 21:04  卓能文  阅读(8)  评论(0)    收藏  举报