登录
首页 >  Golang >  Go问答

在 WSL 2 中使用 go get 获取私有GitHub存储库的依赖

来源:stackoverflow

时间:2024-02-27 18:57:24 123浏览 收藏

一分耕耘,一分收获!既然都打开这篇《在 WSL 2 中使用 go get 获取私有GitHub存储库的依赖》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我正在 windows 10 上尝试 wsl 2,到目前为止一切进展顺利,但我已经努力了 2 周才能完成这项工作,因为由于某种原因 go get 不使用或无法使git 凭据管理器提示我输入凭据。

我按照此博客使用 gcm 设置 wsl2 https://www.edwardthomson.com/blog/git_credential_manager_with_windows_subsystem_for_linux.html

它对于大多数日常任务(例如克隆、读取和写入)都非常有效。但是当使用 go get 时,我收到此错误。

go get @
go:  681dceefc81203e094872401c184d038090d6049 => v0.0.17-0.20200501212733-681dceefc812
go get: @v0.0.17-0.20200501212733-681dceefc812/go.mod: verifying module: @v0.0.17-0.20200501212733-681dceefc812/go.mod: reading https://sum.golang.org/lookup/@v0.0.17-0.20200501212733-681dceefc812: 410 Gone
        server response:
        not found: @v0.0.17-0.20200501212733-681dceefc812: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /tmp/gopath/pkg/mod/cache/vcs/232ff028cb2fdebd254e30bfc612843483f0fe3fbeb18d5fc8fb4b20f21c9021: exit status 128:
                fatal: could not read Username for 'https://github.com': terminal prompts disabled

已经尝试过 ssh-keys 和此处提出的解决方案,在 github 私有存储库中获取“终端提示已禁用”错误的结果

但是错误仍然相同,当启用 env git_terminal_prompt=1 时什么也没有发生,我猜这是因为 wsl 2 没有执行此操作的权限。不管怎样,我也尝试了这个工具https://github.com/microsoft/git-credential-manager-for-mac-and-linux,并通过为普通凭证存储设置一个变量,它会在终端中提示输入凭证。但我使用 2fa,因为它是组织要求的,并且提示只要求输入用户名和密码,因此身份验证失败。

所以我必须联系一位正在使用 mac 的朋友。他能够 go get 影响 go.mod 的依赖项,进行提交并推送更改,以便我可以拉取它并从那里继续。但当然这并不理想,而且他没有任何问题,他使用 osxkeychain 来管理他的 git 凭证。

有人遇到过这个问题吗?或者知道如何解决?提前非常感谢您。


解决方案


go 无法理解某些模块是私有的,并且不应根据 go 的校验和库验证它们的校验和。以下错误来自于此

verifying module: @v0.0.17-0.20200501212733-681dceefc812/go.mod: reading https://sum.golang.org/lookup/@v0.0.17-0.20200501212733-681dceefc812: 410 Gone

如果可能,至少使用 1.13 或更高版本。 go 引入了名为 goprivategonoproxygonosumdb 的环境变量,以便更好地管理私有模块。向 go 发出您正在导入私有存储库的信号的最简单方法是使用 goprivate。将私有存储库的模式设置为 goprivate env 变量,以抑制校验和验证和 goproxy 的使用。下面的示例避免了该层次结构中所有存储库的校验和:

goprivate=github.com//*

查看答案 herehere。您还可以通过 go help module-private 获取帮助。

本篇关于《在 WSL 2 中使用 go get 获取私有GitHub存储库的依赖》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>