问题标签 [go-get]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
845 浏览

go - git credential.helper 而不是 .netrc 来获取依赖项

为了兑现依赖项,我使用连接到专用网络之外的服务器(因为无法直接从 获取依赖项)的(作为goproxynexusGitHub


nexus.some.repo.com:4443/repository/go-nexus-proxy ➡️gonexus.dev nexus.some.repo.com:4443/repository/go-proxy ➡️proxy.golang.org ...


在此处输入图像描述

我使用.netrc文件连接到

我可以用git credential.helper代替.netrc❓</p>

如果我该 如何配置git credential.helper❓</p>

0 投票
1 回答
3801 浏览

go - Golang 子项目或子模块依赖

Golang 中推荐的下载依赖项子模块的方法是什么?我认为我的问题可以用例子来最好地描述。

示例 #1:

我有一个客户端和一个服务器。我的服务器是一个 API,并且有许多其他依赖项,例如数据库、消息队列、consul 等。我希望我的客户端是一个轻量级的包,用户只需下载客户端所需的少量依赖项。

您可以说客户端和服务器可以位于不同的存储库中。但是,它们之间也可能有一些通用代码,如果我们遵循这种模式,它们将再次成为另一个存储库。

我正在考虑一些看起来像这样的结构:

示例 #2:

项目共享模型是很常见的。如果我们有通过具有通用模型的消息代理进行通信的微服务,我们可能需要这样的结构。

与其他语言的比较

我来自 Scala/Java 背景,不到一个月就开始使用 Golang。与 Scala 相比,我可以通过两种方式处理这个问题。让我们以示例#2为例

  1. 将模型发布为自己的 jar 并model.jar在每个服务中导入
  2. 在 sbt 中使用多项目设置:https ://www.scala-sbt.org/1.x/docs/Multi-Project.html 。

我在 Go 中探索的一些东西

  1. https://blog.gopheracademy.com/advent-2015/vendor-folder/
  2. https://github.com/golang/go/wiki/Modules#faqs--multi-module-repositories

但到目前为止,他们似乎没有解决我的问题

最后的问题

在 Golang 中解决我在示例中陈述的问题的推荐方法是什么?

谢谢您的帮助!

0 投票
1 回答
172 浏览

go - 去获取不从 BitBucket 下载存储库下的模块

在 bitbucket.org 中有一个 git repo

模块目录是 git 存储库的子目录。存储库用 标记v0.0.1

这是 go.mod

当我go get为这个模块做时,我收到以下错误

如果我使用网络浏览器查看,我可以在标签下看到integration-common/util/bitbucket.org 中的目录。v0.0.1go.mod 的内容如上所示。

更奇怪的是, go get 确实设法下载了存储库中的其他目录(integration1/integration2/)。出于某种原因,它认为v0.0.1不包含该integration-common/目录,即使 bitbucket 在那里为该标签显示它。

我使用 ssh 而不是 https 下载,因为 https 在我们的 bitbucket 存储库中需要 2fa:

〜/ .gitconfig:

我知道在使用 go get 时 bitbucket 很奇怪。我错过了什么,或者这是 go get 和 bitbucket 的错误?

0 投票
1 回答
300 浏览

git - go get 不适用于引用自定义 gitconfig 的 .gitconfig

我克隆了一个存储库,git clone该存储库依赖于另一个私有存储库。在当前 repo 中,我尝试使用go get该依赖项 ( go get -u ./...),但它引发了一个错误:

致命:无法读取“https://bitbucket.org”的用户名:终端提示已禁用

信息

  • 我曾经git clone git@my-name.bitbucket.org:company/repo.git将 repo 克隆到~/Desktop/BitBucket/Company目录。
  • 我有GOPRIVATE="bitbucket.org/company/*"
  • 没有includeIf. 如果我用公司 .gitconfig 替换 .gitconfig工作正常。但是我需要管理多个帐户...
  • 该命令git config --get user.name(在 repo 内)返回My Name. 所以有一个问题go get

我的主要 .gitconfig文件(在 $HOME 目录中):

我的.gitconfig文件(用于公司回购 $HOME/.git/BitBucket/Company/.gitconfig):

我的ssh 配置文件($HOME/.ssh/config):

我的错误是什么?

我还发现了这篇文章:https ://medium.com/easyread/today-i-learned-fix-go-get-private-repository-return-error-terminal-prompts-disabled-8c5549d89045 。您可以查看第一条评论:

仅供参考,这在使用引用自定义 .gitconfig-custom 的 .gitconfig 时不起作用。它必须存在于 ~/.gitconfig.... 令人沮丧的人。

我试图将公司 .gitconfig移动到主目录(+ 将其重命名为 .gitconfig-company)。没有任何效果。

0 投票
1 回答
31 浏览

go - main.go 找不到包

实际上我想用它c4来生成c4 id 视频文件,所以我找到了下面repo是为做这件事而开发的,所以我克隆了这个repo https://github.com/Avalanche-io/c4/tree/v0.7.0

现在正如堆栈溢出的答案中所建议的那样:无法从 github 安装 cmd 版本的 c4

我在ubuntu终端中执行以下命令

然后正如他们在如何使用它的示例中所示repo

我只是复制了这个相同的示例并创建了一个main.go文件,当我运行他们在README.md https://github.com/Avalanche-io/c4/blob/v0.7.0/id/README.md中定义的 这个命令时是go run main.go ```` Instead of getting the 文件的 c4 id```,如他们在示例中所示。我收到以下错误

我不懂go语言,所以在这里解决问题对我来说变得非常困难,有没有go开发人员可以帮助我。

0 投票
3 回答
933 浏览

git - 如何指定将使用哪个 ssh 密钥 `go get`

我在同一台笔记本电脑(运行 Ubuntu 版本 20)上使用两个不同的 github 帐户(个人和工作)。我需要能够使用我的工作 github 帐户的 ssh 密钥从工作中访问私人存储库。

我已经使用一些简洁的 git config 控件完成了所有工作,即在我的~/.gitconfig文件中我放了:

个人配置包含:

工作配置包含:

这一切都适用于从 github 拉取和推送(并使用 gpg 密钥签署工作提交),但它go get在私人仓库中失败。出于某种奇怪的原因go get,试图使用我的个人 ssh 密钥 ( ~/.ssh/id_rsa) 而不是我的工作 ssh 密钥 ( ~/.ssh/id_ecdsa)。我已经设置了GOPRIVATE环境变量,即

go get 的输出如下:

我可以看到我的 ssh 代理有两个键:

当我删除我的个人 ssh 密钥(即rm ~/.ssh/id_rsa*)然后go get在私人仓库上工作得很好,所以我知道它肯定只是试图使用错误的 ssh 密钥。由于某种原因,它忽略了 git config core.sshCommand

0 投票
1 回答
362 浏览

go - 为什么我尝试下载 go 包时不断收到此消息?

如何下载软件包?我相信它正在尝试检查我的计算机上缓存的内容,但我不知道如何先下载它。

0 投票
0 回答
51 浏览

go - 使用所需模块的旧版本编译 go 源代码

我试图构建一个go需要的源代码,go-systemd我在源包中看到go.mod 文件go-systemd中也提到了该版本。github.com/coreos/go-systemd/v22 v22.0.0但是当我运行go get -u源代码时。它失败并出现错误,我看到在v22.2.0.

我应该如何使用以前没有此代码的版本来避免此错误?我正在go version 1.16使用centos7

提前致谢。

0 投票
2 回答
176 浏览

go - 使用特定版本的 golang 依赖模块

我正在尝试从github 链接构建 postfix-exporter 代码。它依赖于文件go-systemd中提到的包。我在文件中看到,提到的包版本是 但是当我为此路径运行时,它开始下载最新版本(),该版本在最新提交中存在问题并导致编译失败。进来的错误是go.modgithub.com/coreos/go-systemd/v22 v22.0.0go.modv22.0.0.go get -uv22.2.0go-systemd

我想知道,如果不是这样,或者我缺少一些选项来尊重中提到的依赖包的版本,如何编译任何依赖模块的特定版本go.mod

提前非常感谢,请原谅我的golang知识。

0 投票
1 回答
100 浏览

docker - docker容器上的“go get”意外行为

与我的本地机器相比,在 docker 容器中运行时我遇到了意外的行为go get [module],我将不胜感激任何帮助理解这种不同行为的原因。

1) 本地机器

命令:

结果:

  • $GOPATH /bin包含可执行文件gocov
  • 该模块已下载到$GOPATH /src/github.com/axw/gocov/gocov
  • $GOPATH /pkg不包含任何与gocov包相关的内容。

2)Docker容器

Dockerfile:

此 dockerfile 用于测试目的,因为它没有入口点。

结果:

  • $GOPATH /bin包含可执行文件gocov
  • $GOPATH /src不包含任何与gocov包相关的内容。
  • 该模块已下载到$GOPATH /pkg/mod/github.com/axw/gocov@v1.0.0