我正在尝试使用编译InfluxDB数据库(版本v0.8.8) go get github.com/influxdb/influxdb
go get github.com/influxdb/influxdb
但这拉了master分支,我需要v0.8.8标签。
v0.8.8
我已尝试做: go get github.com/influxdb/influxdb/releases/tag/v0.8.8但这无法说找不到。
go get github.com/influxdb/influxdb/releases/tag/v0.8.8
我也试图做一个正规go get的主分支,然后手动检查出使用标签git中GOPATH/src/github...以设置corret版本。
go get
git
GOPATH/src/github...
使用最后一种方法的问题是,当我尝试使用其依赖项时,go get -u -f ./...它会尝试在master分支中找到它们,而其中的一些不存在于master分支中。
go get -u -f ./...
TL; DR :go get在特定的github标记上执行,并提取正确的依赖项。
无法使用该go get工具。相反,您需要使用第三方go软件包管理工具或为希望管理更细粒度的软件包创建自己的fork。
谈到一个在Google工作的人,他承认了这个问题/要求,他说他的团队使用的供应商规模很大,他们可能很快会用官方工具解决它。
阅读更多:
Go 1.6中的供应商
供应商已经从go 1.6的实验版本中释放(最初写这篇文章之后),这使使用第三方工具使用特定标签/软件包版本的过程更加容易。go get仍不具备获取特定标签或版本的功能。
有关供应商如何工作的更多信息:了解和使用供应商文件夹
Go 1.11中的模块
Go 1.11发布了称为模块的实验性功能,以改善依赖关系管理,他们希望在Go 1.12中将其稳定发布:有关Go 1.11中模块的信息