这是一个 go 模块问题。
我的电脑正在运行 go 1.13 并且 go 模块模式已打开。
这是我的go env
:
GO111MODULE="on"
GOPRIVATE=""
GOPROXY="https://goproxy.io,direct"
一开始我写了一个公共(public)包进行测试,并上传到github。然后我“去拿”这个独立包。之后我将其设为私有(private),甚至从 github 中删除(我尝试了“git clone”但无法再次下载)。但是在我从 github 中删除它之后,我可以“去获取”它。很快我意识到这个包可能缓存在 goproxy.io 或其他代理数据库中。所以我再次设置了 GOPROXY="direct"和 "go get"这个包并且失败了。这个 Action 证明了我的猜测。
现在是我的问题:
我试图 STFW 并没有发现任何东西。感谢大家阅读和回答这个问题。
最佳答案
如果你不小心发布了一个你打算私有(private)的包/模块,那么 go.dev: About页:
Removing a package
If you would like a package removed, please send an email to
go-discovery-feedback@google.com
, with the import path or module path that you want to remove.
但正如 Adrian 在评论中提到的,不能保证没有人下载您发布的软件包。
如果您希望某些包/模块保持私有(private),您可以在
GOPRIVATE
中枚举它们(使用 glob 模式)。 , GONOPROXY
, GONOSUMDB
go 工具尊重的环境变量。Command go: Environment variables:
GOPRIVATE, GONOPROXY, GONOSUMDB Comma-separated list of glob patterns (in the syntax of Go's path.Match) of module path prefixes that should always be fetched directly or that should not be compared against the checksum database. See 'go help module-private'.
来自命令
go help module-private
:The GOPRIVATE environment variable controls which modules the go command considers to be private (not available publicly) and should therefore not use the proxy or checksum database. The variable is a comma-separated list of glob patterns (in the syntax of Go's path.Match) of module path prefixes.
这些变量也可以使用
go env -w
设置。命令。您可以使用 go help env
获得更多帮助.
关于go - 我想从 Goproxy 中删除我的私有(private)包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60117886/