【发布时间】:2018-10-31 14:49:13
【问题描述】:
我希望使用 go 创建可重现的构建。 对于个别项目,我们正在使用 glide。
所以例如我使用:
glide get github.com/stretchr/testify
修复“testify”包的版本。 但是,这不适用于工具。 例如:
glide install github.com/tebeka/go2xunit
返回成功但并未实际安装 go2xunit 所以我必须使用:
go get github.com/tebeka/go2xunit
将 go2xunit 安装到 $GOPATH/bin。
Q 如何修复 go2xunit 等工具的版本?
我还注意到 glide says use dep instead 和 dep 说 golang has diverged from its implementation 并且可能最终会使用基于 vgo 的东西。 Go 有大量的依赖管理工具,也许其中一个不太知名的工具支持这一点?
如果相关,我使用的是 Debian9 提供的 go 1.7.4。
【问题讨论】:
-
我不确定其他 go 依赖工具,但 dep 也不会安装二进制文件。有一个关于它的issue 已经打开。我所做的是保留一个单独的 gotools GOPATH,我保留所有基于 go 的工具。尤其是 vscode 使用的那些。这可以防止我的项目 GOPATH 被外部事物“污染”。
-
尚不清楚 vgo 是否会解决这个问题 - go.googlesource.com/proposal/+/master/design/…
-
我刚刚在 go1.11 中添加了
go mod
。它就像其他依赖工具不安装包,他们只是下载它们。所以你将无法跟踪像 go2xunit 这样的构建依赖工具。 -
噢!那时,可重现的构建还有一段路要走!不过感谢您的洞察力。
-
我确定这一定是一个已知问题,但未能找到它我在这里提出了它 - github.com/golang/go/issues/28512
标签: go glide-golang