登录
首页 >  Golang >  Go问答

go.sum文件在使用go mod供应商和下载时不一致

来源:stackoverflow

时间:2024-03-02 20:33:22 186浏览 收藏

你在学习Golang相关的知识吗?本文《go.sum文件在使用go mod供应商和下载时不一致》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我在 go 模块中使用命令 go modvendorgo mod download 时遇到问题。

当我使用 go modvendor 时,生成的 go.sum 有额外的行。例如,当我使用 go mod download 时,go.sum 包含:

github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:vgx0dq3q6kwi7aoaezdth3/j3bftozr5xlfggcrjcos=

但是,如果我删除 go.sum 并运行 go modvendor,我有 2 行:

github.com/cespare/xxhash/v2 v2.1.1 h1:6mnrn8nt7+ybpuiwxhteffzoktapggjpqsxqlnn0+qy=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:vgx0dq3q6kwi7aoaezdth3/j3bftozr5xlfggcrjcos=

这是有问题的,因为如果我在运行 go modvendor 后提交 go.sum,任何进一步的 go mod download (可能被其他人或在 ci 中使用)将无法工作,因为哈希值不匹配,从而导致安全问题.

我在使用 go modvendorgo mod download 时做错了什么吗?为什么他们会在 go.sum 中产生不同的哈希值?

这是立即发生的错误类型:

verifying [email protected]: checksum mismatch
     downloaded: h1:tIKKCv/bUyBNvVsB6YLo0Ds9ZFdGJ0FKkFun22nwvCI=
     go.sum:     h1:qta5K5jjJg+TnsD76tcFK7Bjf402WP9MIbPsJGU11Ms=

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.

(注:我将包裹名称替换为xxx,因为它带有我的公司名称)


解决方案


问题实际上是 git 存储库使用了 git-lfs,但 git-lfs 在客户端或服务器端均不可用,这会导致使用或不使用 git-lfs 计算时出现不连贯的哈希值。

go mod download 没有为下载的模块添加 go.sum 条目这一事实可以说是一个错误,它将在即将发布的 Go 1.16 版本中修复(请参阅 https://golang.org/issue/41341)。

以上就是《go.sum文件在使用go mod供应商和下载时不一致》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>