编译”github.com/influxdata/telegraf“ 让我疯狂

102 views
Skip to first unread message

Ric Y

unread,
Jul 26, 2019, 4:36:19 AM7/26/19
to Golang-China
github.com/influxdata/telegraf“ 项目使用”dep“进行依赖包的管理,一开始我遵循官方文档的说明进行编译,但是有大量的第三方依赖包无法通过“dep”下载,大多数都是“golang.org/xxx

于是我手动通过Google,从GitHub上下载了所依赖的第三方包到我的GOPATH中,但是很不幸,依然无法通过“dep ensure”,原因是通过GitHub下载的库没有tag,不能通过dep的版本校验。

而且,我已经为我的git设置了全局的proxy,使用我本地的ssr代理,dep仍然是无法下载golang.org下的依赖包。

我了解了一下”go mod“,于是通过“go mod”以及阿里云提供的"goproxy",看起来解决了大部分问题。

在这个过程中发生一些不明原因的事情:

“go mod init”首次运行的时候,会根据dep的依赖配置文件,转换为 go.mod。但是在dep中有一处依赖配置是这样的:

[[constraint]]
  version = "2.0.0"


然而go.mod中是这样的:

require (
  github.com/influxdata/go-syslog v0.0.0-20190305002004-ae34d6fc01b1
)

需要手动修改为:
require (
)

接着就会遇到:
build command-line-arguments: cannot load cloud.google.com/go/civil: cannot find module providing package cloud.google.com/go/civil

🙃...

Cholerae Hu

unread,
Jul 26, 2019, 5:32:05 AM7/26/19
to golang...@googlegroups.com
既然可以手动通过google下载第三方包到 GOPATH里,为什么不直接给terminal配个proxy呢

Ric Y <youzhe...@gmail.com> 于2019年7月26日周五 下午4:36写道:
--
--
官网: http://golang-china.org/
IRC: irc.freenode.net #golang-china
@golangchina
---
您收到此邮件是因为您订阅了Google网上论坛上的“Golang-China”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/0689cda1-c05a-4ed9-9deb-cd63591e7893%40googlegroups.com

Ric Y

unread,
Jul 26, 2019, 6:54:35 AM7/26/19
to Golang-China
设置了环境变量:
http_proxy
https_proxy
ftp_proxy

但是dep无法工作,目前还不知道什么原因。
至于go mod,可以直接通过设置goproxy,但是有一部分库无法通过代理获得。。

在 2019年7月26日星期五 UTC+8下午5:32:05,Cholerae Hu写道:
既然可以手动通过google下载第三方包到 GOPATH里,为什么不直接给terminal配个proxy呢

要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china+unsubscribe@googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/0689cda1-c05a-4ed9-9deb-cd63591e7893%40googlegroups.com

yegle

unread,
Jul 26, 2019, 12:09:16 PM7/26/19
to golang中文小组
注意Golang的代码编译是reproducible的,有一个方法是去下载docker image然后把二进制拷贝出来用

既然可以手动通过google下载第三方包到 GOPATH里,为什么不直接给terminal配个proxy呢

要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/0689cda1-c05a-4ed9-9deb-cd63591e7893%40googlegroups.com

--
--
官网: http://golang-china.org/
IRC: irc.freenode.net #golang-china
@golangchina
---
您收到此邮件是因为您订阅了Google网上论坛上的“Golang-China”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到golang-china...@googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/golang-china/b67c27b5-435c-4ede-8a51-985e6a545a0f%40googlegroups.com


--

Ric Y

unread,
Jul 26, 2019, 12:10:49 PM7/26/19
to golang...@googlegroups.com
谢谢大家,我找了一台香港服务器,5分钟就变编译好了……

yegle <cny...@gmail.com>于2019年7月27日 周六00:09写道:

Travis X

unread,
Jul 31, 2019, 10:20:49 PM7/31/19
to golang...@googlegroups.com
module 可以使用 replace 把 google 类依赖的切成 github

另外你第一次 go mod tidy 成功,使用 go mod vendor 将依赖打到 vendor 下,之后再构建的时候

go build -mod=vendor 就不会再去下了,会直接使用 vendor 中的依赖,每次构建都下载不是很麻烦吗


PS:go 版本建议 1.12 以上

 
Best Wishes!
Travis X



Reply all
Reply to author
Forward
0 new messages