如何设置GOPRIVATE环境变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置GOPRIVATE环境变量相关的知识,希望对你有一定的参考价值。

[我开始从事Go项目,它使用了Github私有存储库中的一些私有模块,每当我尝试运行go run main.go时,都会出现以下410 Gone错误:

验证github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod:github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod:阅读https://sum.golang.org/lookup/github.com/!repoURL/go-proto@v2.86.0+incompatible:410已消失

我可以轻松地从终端克隆私人仓库,这意味着我的ssh密钥配置正确。我读了here,我需要设置GOPRIVATE环境变量,但是我不确定该如何设置。任何人都可以回答或指向相关教程吗?找不到任何有用的]

Go: v1.13,OS: macOS Mojave

答案

简短回答:

go env -w GOPRIVATE=github.com/repoURL/private-repo

长回答:

检查"Module configuration for non-public modules"了解更多信息:

GOPRIVATE环境变量控制go命令认为哪个模块是私有的(不可公开获得),因此不应使用代理或校验和数据库。该变量是模块路径前缀的逗号分隔的全局模式列表(按照Go的path.Match的语法)。例如,

 GOPRIVATE=*.corp.example.com,rsc.io/private

使go命令将路径前缀与任一模式匹配的任何模块都视为私有模块,包括git.corp.example.com/xyzzy、rsc.io/private和rsc.io/private/quux。

。。

'go env -w'命令(请参阅'go help env')可用于为以后的go命令调用设置这些变量。


关于ssh使用的注意事项:

如果使用ssh访问git repo(本地托管),则可能需要在~/.gitconfig中添加以下内容:

[url "ssh://git@git.local.intranet/"]
       insteadOf = https://git.local.intranet/

为了使go命令能够访问git服务器。

以上是关于如何设置GOPRIVATE环境变量的主要内容,如果未能解决你的问题,请参考以下文章

在创建VSCode片段时,如何将变量转换为title-case(如TitleCase)?

如何更改片段中的主要活动变量

MySQL系列:kafka停止命令

如何创建片段以重复变量编号中的代码行

如何使用Android片段管理器传递变量[重复]

如何在代码块中运行我的程序之前设置/取消设置环境变量