go version
)?$去版本 转到版本 go1.13.3 linux/amd64
是的
go env
)?go env
输出
$去环境
GO111MODULE=""
GOARCH="amd64"
GOBIN="/opt/DEVOPS/SDK/golang/go_projects/bin"
GOCACHE="/home/alessiosavi/.cache/go-build"
GOENV="/home/alessiosavi/.config/go/env"
GOEXE=""
高尔夫球旗=“”
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUUMDB=""
GOOS =“Linux”
GOPATH="/opt/DEVOPS/SDK/golang/go_projects"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/opt/DEVOPS/SDK/golang/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/DEVOPS/SDK/golang/go/pkg/tool/linux_amd64"
GCCGO=“gccgo”
AR=“ar”
抄送=“gcc”
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build891034950=/tmp/go-build -gno-record-gcc-switches"
我正在尝试导入一个不包含任何其他依赖项的自定义 golang 模块(go.mod 仅包含module
名称和go
版本)。 不幸的是,如果我尝试将该模块包含在其他项目中,我会收到410 gone
。
该模块可以使用 v0.0.8 版本导入,但不能使用 >v0.0.9
由于 go.mod 文件,无法在play.golang.org
上复制,相反,我为此创建了一个新存储库: https :
注意:将模块版本更改为 v0.0.8,它将起作用
我希望在 go.mod 中导入模块(需要 github.com/alessiosavi/GoGPUtils v0.0.10
) 并运行go clean
,该模块可以在代码中使用
我收到一个错误:
export GO111MODULE=on
export GOPROXY=direct
go get -v -u github.com/alessiosavi/[email protected]
go: downloading github.com/alessiosavi/GoGPUtils v0.0.9
verifying github.com/alessiosavi/[email protected]: github.com/alessiosavi/[email protected]: reading https://sum.golang.org/lookup/github.com/alessiosavi/[email protected]: 410 Gone
关注: https :
似乎https://proxy.golang.org/github.com/alessiosavi/!go!g!p!utils/@v/v0.0.9.info
就我而言,该错误似乎与两个文件有关,这两个文件仅在名称的大小写上有所不同。
问题是https://github.com/alessiosavi/GoGPUtils/issues/2。
要获得更完整和有用的错误消息,您应该访问在您收到的错误消息中返回 410 的 URL:
https://sum.golang.org/lookup/github.com/alessiosavi/!go!g!p!utils @v0.0.9
它说:
not found: unzip /tmp/gopath/pkg/mod/cache/download/github.com/alessiosavi/!go!g!p!utils/@v/v0.0.9.zip: case-insensitive file name collision: "tests/fileutils/FindMe.txt" and "tests/fileutils/findme.txt"
或者设置GOSUMDB=off
除了设置GOPROXY=direct
:
$ export GO111MODULE=on
$ export GOPROXY=direct
$ export GOSUMDB=off
$ go get -v -u github.com/alessiosavi/[email protected]
go: finding github.com/alessiosavi/GoGPUtils v0.0.9
go: downloading github.com/alessiosavi/GoGPUtils v0.0.9
go: extracting github.com/alessiosavi/GoGPUtils v0.0.9
-> unzip /var/folders/zb/5p8cwfhj29gf_m8vdy8ylmlr00jwcj/T/tmp.6HERCDpw/pkg/mod/cache/download/github.com/alessiosavi/!go!g!p!utils/@v/v0.0.9.zip: case-insensitive file name collision: "tests/fileutils/FindMe.txt" and "tests/fileutils/findme.txt"
go get github.com/alessiosavi/[email protected]: unzip /var/folders/zb/5p8cwfhj29gf_m8vdy8ylmlr00jwcj/T/tmp.6HERCDpw/pkg/mod/cache/download/github.com/alessiosavi/!go!g!p!utils/@v/v0.0.9.zip: case-insensitive file name collision: "tests/fileutils/FindMe.txt" and "tests/fileutils/findme.txt"
与往常一样,另一天,@dmitshur 解决了另一个问题。 感谢您的努力(:
另一个 Go 版本,另一个需要在 Dockerfiles 中关注和设置的 ENV 变量🤣
基本上正如@dmitshur正确指出的那样:
export GOSUMDB=off
有帮助。
这个线程救了我。 谢谢你。
Go 工具真的可以使用一些修改过的错误消息。 我真的被下面的消息迷住了。 我对与模块相关的新开发几乎一无所知(除了我称赞其意图!),并且难以理解的错误消息使得迁移变得非常困难。
go: ghe.internalrepo.co.jp/project/[email protected]/go.mod: verifying module: ghe.internalrepo.co.jp/project/[email protected]/go.mod: reading https://sum.golang.org/lookup/ghe.internalrepo.co.jp/project/[email protected]: 410 Gone
server response: not found: ghe.internalrepo.co.jp/project/[email protected]: unrecognized import path "ghe.internalrepo.co.jp/project/our_project": https fetch: Get "https://ghe.internalrepo.co.jp/project/our_project?go-get=1": dial tcp 123.123.123.123:443: connect: connection refused
啊,为找到此线程的人提供更多提示: export GOSUMDB=off
帮助解决了该问题,但至少在我的情况下是“正确的”(从某种意义上说,它不涉及公共依赖项访问)修复是设置export GOPRIVATE=ghe.internalrepo.co.jp
。 尽管如此,它仍然让我感到困惑,它如何在 GOSUMDB 失败后不尝试直接访问存储库,而是立即失败并显示一条神秘消息。 对于 Go 开发人员:如果您不了解这些概念,该消息看起来会更加神秘,所以请围绕它做一些 UX 工作!
最有用的评论
问题是https://github.com/alessiosavi/GoGPUtils/issues/2。
要获得更完整和有用的错误消息,您应该访问在您收到的错误消息中返回 410 的 URL:
https://sum.golang.org/lookup/github.com/alessiosavi/!go!g!p!utils @v0.0.9
它说:
或者设置
GOSUMDB=off
除了设置GOPROXY=direct
: