为了账号安全,请及时绑定邮箱和手机立即绑定

Go build 失败:使用 go mod 文件运行“go build”时“下载不一致的图块”

Go build 失败:使用 go mod 文件运行“go build”时“下载不一致的图块”

Go
慕桂英546537 2022-05-05 16:16:19
我刚刚开始一个项目并想使用 go 模块。我创建了一个具有少量功能的新仓库,但它拒绝构建。我已经在go build没有模块的情况下进行了测试,它工作得很好。错误信息:C:\Users\gledr\Polyapp_Apps\gocode\src\gitlab.com\polyapp\go-wasm-mvc>go build go: 提取 github.com/rs/cors v1.7.0 验证 github.com/rs/cors@v1 .7.0:github.com/rs/cors@v1.7.0:初始化 sumweb.Conn:检查树#187855:下载的图块不一致这个错误是什么意思?我认为这个错误意味着我必须重新下载相关的包,即使包在没有 go 模块的情况下也可以工作!?关于我的项目的注释标准库导入按预期工作零非标准库导入似乎有效go build如果我删除 go.mod 但失败了go mod init go build你可以在这里克隆项目:https ://gitlab.com/polyapp-open-source/go-wasm-mvc (显然我还没有写过一个单一的功能......)你也可以go get gitlab.com/polyapp-open-source/go-wasm-mvc项目尝试解决问题没有类似的 Stack Overflow 问题(“下载的不一致的磁贴”对我来说只有 2 个谷歌结果)抛出错误的代码在这里:https ://github.com/golang/mod/blob/master/sumdb/tlog/tile.go根据引发错误的代码,看来我必须删除失败的下载(即使它可以在没有 go mod 的情况下工作?!?)。我这样做了。我删除了几个子目录下 $GOPATH/pkg 中的相关文件夹,并删除了 $GOPATH/src 中的源,但是当我这样做时,它仍然会抛出错误我尝试使用go build -d github.com/blahblahblah重新下载文件,但它显然什么也没做由于此处看到的 1.13 的 go sum 提案可能存在此检查(ctrl+f 表示“inconsis”):https ://go.googlesource.com/proposal/+/master/design/25530-sumdb.md如果你阅读了上面的 go sum 提案,它会说“没有 go 命令(只有一个手册rm -rf $GOPATH/pkg)会清除最新观察到的树大小和哈希的内存”。我相信这就是我所处的情况,但是当我删除 $GOPATH 中的子包时,它仍然失败。本着保存我的 $GOPATH/pkg 文件夹的精神,我尝试在此处删除缓存:$GOPATH/pkg/mod/cache/download/github.com/[package name]但奇怪的是,尽管删除缓存触发了新的“go get”,但重新下载的文件也有不一致的图块!根据这个经验,我认为 go sum <-> $GOPATH/pkg 验证有些奇怪。go envset GO111MODULE=set GOARCH=amd64set GOBIN=set GOCACHE=C:\Users\gledr\AppData\Local\go-buildset GOENV=C:\Users\gledr\AppData\Roaming\go\envset GOEXE=.exeset GOFLAGS=set GOHOSTARCH=amd64set GOHOSTOS=windowsset GONOPROXY=set GONOSUMDB=set GOOS=windowsset GOPATH=C:\Users\gledr\Polyapp_Apps\gocodeset GOPRIVATE=set GOPROXY=https://proxy.golang.org,directset GOROOT=C:\Goset GOSUMDB=sum.golang.orgset GOTMPDIR=set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

该错误意味着实际校验和与校验和数据库中的可用校验和之间的差异。从一个地方拉入依赖项会有所帮助,但根据所描述的情况,即使依赖项的版本是不变的,你的依赖项也会发生变化。

您最近是否迁移到 Go 1.13?或者您之前使用过不同的 GOPROXY?


查看完整回答
反对 回复 2022-05-05
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

我最终将 $GOPATH/pkg 目录重命名为 $GOPATH/old_pkg - 相当于rm -rf $GOPATH/pkg我在问题中链接的 Go SUM 提案中的建议。因此,必须重新下载所有依赖项,但它现在可以工作了。

删除 $GOPATH/pkg 文件夹也导致我的另一个更大的项目开始工作。重新下载所有依赖项只需要几分钟。


查看完整回答
反对 回复 2022-05-05
  • 2 回答
  • 0 关注
  • 727 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信