2021-05-27

博客讨论了在Go模块管理中遇到的`checksum mismatch`错误,指出这通常是由于下载的依赖包校验和与go.sum文件记录的不同导致。作者尝试删除go.sum文件并未解决问题,但通过直接修改go.sum中对应条目的校验和使得环境能够正常运行。文章提醒,尽管这种方法可以临时解决问题,但可能不安全,建议深入理解模块认证和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

go mod vendor报错:verifying 。。。checksum mismatch


按照当前的趋势估计 go 之后的版本都是用 go mod 来管理了,gopath 这种模式感觉会被淘汰。

go mod help 查看帮助
go mod init<项目模块名称>初始化模块,会在项目根目录下生成 go.mod 文件。
go mod tidy 根据 go.mod 文件来处理依赖关系。
go mod vendor 将依赖包复制到项目下的 vendor 目录。建议一些使用了被墙包的话可以这么处理,方便用户快速使用命令 go build -mod=vendor 编译
go list -m all 显示依赖关系。go list -m -json all 显示详细依赖关系。
go mod download 下载依赖。参数是非必写的,path 是包的路径,version 是包的版本。

在网上搜了很多这个问题的解决方案,从一开始的一头雾水不知道这是怎么了到后来发现就是两个校验和不一致的问题,尝试把project中的sum文件删掉并没有解决问题。

简单粗暴一点直接把sum文件中的校验和改成命令行中要下载的那个发现居然可以!!!只要报错就改校验和,最后环境也是跑通的。
举个例子:

go: downloading github.com/flosch/pongo2/v4 v4.0.0
verifying github.com/flosch/pongo2/v4@v4.0.0: checksum mismatch
	downloaded: h1:89EuG/yHG6NE7KFmeg5GwnHYiiPQQXA1SGr12O9umVE=
	go.sum:     h1:6eZe8NSNxtTTGwXgJqqXiiLEDAj7CvkwiYrZFQRW6cQ=

SECURITY ERROR
This download does NOT match an earlier download recorded in go.sum.
The bits may have been replaced on the origin server, or an attacker may
have intercepted the download attempt.

For more information, see 'go help module-auth'.

你只需要把go.sum中找到该行校验和改成downloaded后面的校验和就可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值