我正在尝试使用编译InfluxDB数据库(版本v0.8.8) go get github.com/influxdb/influxdb
但这会拉动主分支,我需要v0.8.8标签.
我试图这样做: go get github.com/influxdb/influxdb/releases/tag/v0.8.8但是这说不能说找不到.
我还尝试定期go get执行master分支,然后使用gitin 手动检出标记GOPATH/src/github...以设置corret版本.
使用最后一种方法的问题是,当我尝试使用go get -u -f ./...它来拉动依赖项时,尝试在主分支中找到它们,并且其中一些在主分支上不存在...
TL; DR:go get对特定的github标记执行,并提取正确的依赖项.
Rob*_*son 34
使用该go get工具是不可能的.相反,您需要使用第三方转包管理工具或为您希望管理更精细的包创建自己的分支.
他向一个在谷歌工作的人发表了讲话,他承认了这个问题/要求,他说他的团队使用的售卖很笨重,他们很快就会用官方工具来解决这个问题.
阅读更多:
在Go 1.6中供应
供应已经从第1.6版(最初编写本文之后)的实验中发布,这使得使用第三方工具使用特定标签/版本的软件包的过程更加容易.go get仍然没有获取特定标签或版本的功能.
有关如何工作的更多信息:了解和使用供应商文件夹
Go 1.11中的模块
Go 1.11发布了一个名为模块的实验性功能来改善依赖管理,他们希望在Go 1.12中将其发布为稳定版:Go 1.11中的模块信息
小智 10
我在这方面取得了成功:
brk*_*brk 10
go mod 现在可用。
对于那些需要构建特定标签的二进制文件的人,这是我的方法:
mkdir temp
cd temp
go mod init .
go get -d -v github.com/nsqio/nsq@v1.1.0
mkdir bin
go build -o bin/nsqd.exe github.com/nsqio/nsq/apps/nsqd
Run Code Online (Sandbox Code Playgroud)
说明:
nsqd。go mod init .go.mod在当前目录中创建一个文件,该文件可go get与修订/标签一起使用。(请参阅此链接)-d 表示“仅下载”,如果要直接安装,请忽略此标志以及此行下方的build命令。-v 表示“冗长”。bin/nsqd.exe为bin/nsqd。下载的模块存储在中%GOPATH%\pkg\mod。如果您不想污染GOPATH目录,请新建一个目录并将其设置为该目录GOPATH。
这个问题早于Go Modules,但为了将来参考,Go 1.11 中获取特定版本的正确过程是这样的:
go get github.com/influxdb@[version]
Run Code Online (Sandbox Code Playgroud)
或者获取特定的 git 标签:
go get github.com/influxdb@[gitref]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44825 次 |
| 最近记录: |