我想从Goproxy中删除我的私有包
这是一个围棋模块的问题。 我的电脑运行go 1.13,go模块模式开启 这是my我想从Goproxy中删除我的私有包,go,go-modules,Go,Go Modules,这是一个围棋模块的问题。 我的电脑运行go 1.13,go模块模式开启 这是mygo env: GO111MODULE="on" GOPRIVATE="" GOPROXY="https://goproxy.io,direct" 起初,我编写了一个用于测试的公共包,并将其上传到github。然后我“去拿”这个独立的包裹。之后,我将它设置为私有,甚至从github中删除了它(我尝试了“git克隆”,但无法再次下载)。但我可以在从github中删除它之后“去获取”。很快我意识到这个包可能缓存在gop
go env
:
GO111MODULE="on"
GOPRIVATE=""
GOPROXY="https://goproxy.io,direct"
起初,我编写了一个用于测试的公共包,并将其上传到github。然后我“去拿”这个独立的包裹。之后,我将它设置为私有,甚至从github中删除了它(我尝试了“git克隆”,但无法再次下载)。但我可以在从github中删除它之后“去获取”。很快我意识到这个包可能缓存在goproxy.io或其他代理数据库中。因此,我再次设置GOPROXY=“direct”和“goget”这个包,但失败了。这一行动证明了我的猜测
现在是我的问题:
我试图逃跑,但什么也没找到。感谢所有阅读和回答此问题的人。如果您无意中发布了一个您打算保密的软件包/模块,请点击第页: 删除包 如果您想删除软件包,请发送电子邮件至
go discovery-feedback@google.com
,以及要删除的导入路径或模块路径
但是正如Adrian在评论中提到的,不能保证没有人下载你发布的软件包
如果希望某些包/模块保持私有,可以在go工具所遵循的GOPRIVATE
、GONOPROXY
、GONOSUMDB
环境变量中枚举它们(使用全局模式)
从命令转到帮助模块private
:
GOPRIVATE环境变量控制go命令的模块
认为是私有的(不公开),因此不应使用
代理或校验和数据库。变量是以逗号分隔的
模块路径前缀的全局模式(语法为Go的path.Match)
也可以使用
go env-w
命令设置这些变量。如果您无意中发布了一个您想要成为私有的包/模块,您可以使用go help env
获得更多关于它的帮助,然后页面:
删除包
如果您想删除软件包,请发送电子邮件至go discovery-feedback@google.com
,以及要删除的导入路径或模块路径
但是正如Adrian在评论中提到的,不能保证没有人下载你发布的软件包
如果希望某些包/模块保持私有,可以在go工具所遵循的GOPRIVATE
、GONOPROXY
、GONOSUMDB
环境变量中枚举它们(使用全局模式)
从命令转到帮助模块private
:
GOPRIVATE环境变量控制go命令的模块
认为是私有的(不公开),因此不应使用
代理或校验和数据库。变量是以逗号分隔的
模块路径前缀的全局模式(语法为Go的path.Match)
也可以使用
go env-w
命令设置这些变量。对于问题2,我今天已经试过好几次了,您可以使用“go help env”获得更多帮助。
如果您想安全地构建私有包,最重要的事情是在构建包之前设置GOPRIVATE
。和GONOPROXY
,GONOSUMDB
将自动设置为与GOPRIVATE
相同。
现在,您可以编写代码并将git推送至专用远程回购,然后尝试获取它,您将失败并看到类似的错误消息:
致命:无法读取“”的用户名:终端提示已禁用
确认导入路径输入正确。
如果这是一个专用存储库,请参阅以获取更多信息
该链接告诉我们,如果您将密钥上载到远程ropo,我们应该使用带有用户名/密码的https
链接,或者用ssh链接替换您的https链接。完成此操作后,您将成功地从源地址(您的包名)获取而不是代理
此外,让我们使用go clean-modcache
删除所有go模块缓存,并设置GOPRIVATE=“”
。我将测试我们的私有包是否已上载到代理
案例1:
设置GOPROXY=”https://goproxy.io“
或其他代理,然后打开获取私有包。
您将面临一个404notfound
,它显示您没有从代理中找到任何内容(这意味着代理中没有缓存/存储任何内容)
案例2:
设置GOPROXY=“direct”
(使用您的包裹名称的直接地址),然后获取私人包裹。
您将像这样面对错误消息:
验证{PACKAGENAME}:{PACKAGENAME}:初始化sumweb.Conn:检查树#{ID}:Get:拨号tcp{IP}:{PORT}:i/o超时
go-get
函数将尝试使用您的软件包检查golang.org数据库中的校验和(我无法直接链接到google服务器,因此显示超时错误/如果您可以链接到google服务器,我猜您将获得404)。它表明,如果我们试图在未设置GOPRIVATE
的情况下获取一个私有包,那么您将失败,因为您无法通过检查
建议:
如果你想构建你的私人围棋包,你应该首先设置你的GOPRIVATE
,并确保它足够宽,可以包含你的包名
感谢大家阅读并回答这个问题。关于问题2,我今天已经试了好几次了。
如果您想安全地构建私有包,最重要的事情是在构建包之前设置GOPRIVATE
。和GONOPROXY
,GONOSUMDB
将自动
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'.