关于 vgo 和 dep 的讨论

2019-02-13 11:16:52 +08:00
 index90

刚由 PHP 转 Go,Go 的包管理搞得一头雾水。 刚开始用 dep,后来发现 G 家在去年二月份的时候发布了 vgo。 vgo 是亲儿子,而且有些开源项目都开始使用 vgo 了,是不是应该转用 vgo 呢? 现在大家都用什么啊?有哪些坑?推荐哪个?

4478 次点击
所在节点    Go 编程语言
24 条回复
zhengxiaowai
2019-02-13 11:29:44 +08:00
初学而已,用哪个都差不多 dep 也是官方的
neoblackcap
2019-02-13 11:42:50 +08:00
因为 Go 程序是静态编译的,所以你最简单的选择就是将所有要用的库放进去你的版本库里面就可以了。vgo, dep 我们都可以理解他们是官方的试验,他们也没有完全想好该怎么做依赖管理。

PS:两者一定要选一个的话,我选 dep,至少问题少一些,库的支持更好一些。
silenceshell
2019-02-13 11:50:58 +08:00
1.11 可以用 go mod 了,唯一官方工具
Fitz
2019-02-13 11:53:46 +08:00
直接 go mod 吧 从官方博客 https://blog.golang.org/modules2019 看 go mod 将在 1.13 默认开启并废弃 GOPATH
就一般使用来说 go mod 没什么问题的
Hellert
2019-02-13 11:55:58 +08:00
go.mod 是唯一选择,其他都是过去式了。
index90
2019-02-13 12:04:07 +08:00
@neoblackcap 嗯,我也偏向于 dep,有点类似 composer,相对较熟悉
itfanr
2019-02-13 12:07:27 +08:00
@silenceshell 同意
AlphaTr
2019-02-13 12:14:04 +08:00
dep 是 vgo (go mod) 之前的包管理,还是存在去关心设置 GOPATH 的问题,go mod 好用些,除非用到 1.11 以下版本,否则无脑推 go mod
xiaket
2019-02-13 12:18:05 +08:00
go mod 很爽
frye
2019-02-13 12:34:11 +08:00
go mod 用完之后就会发现秒杀各种 php 的 composer 啥的包管理
thet
2019-02-13 12:48:00 +08:00
推荐 go mod,已经在生产环境用了,还算比较方便了
shynome
2019-02-13 13:26:15 +08:00
go mod 的 replace 贼好用, 能无缝替换掉一个包
比如我就把 v2ray-core 替换成了只包含 grpc 调用代码的包
https://github.com/shynome/v2ray-go-grpc-sdk
cholerae
2019-02-13 13:33:47 +08:00
为啥要搭建私有包仓库
index90
2019-02-13 13:47:16 +08:00
@cholerae 例如你公司的代码是闭源的,而且是模块化开发,又舍不得购买 github 的企业服务……
Mitt
2019-02-13 13:48:41 +08:00
@cholerae 这个问题问的很没有水平
awhane
2019-02-13 15:23:19 +08:00
@index90 你这个需求扔到 gitlab 也可以啊。
其实可以通过 git server 和 nginx 搭建一个 repo,我们 CI+docker 这样跑的贼快。
index90
2019-02-13 15:25:58 +08:00
@awhane 嗯嗯,我们的代码就是放在 gitlab 上的,貌似给 gitlab 配置一个域名就可以了?
主要是不懂 go get 的原理,有没有资料分享一下?
ospider
2019-02-13 15:28:15 +08:00
1. GOPATH 是官方搞出来的玩意儿,强制所有代码都放到 GOPATH 里面,非常恶心。
2. 大家都对 GOPATH 不爽,于是开发了不少第三方工具,dep 是第三方开发的,但是之前有 Go 官方站台。
3. Go 官方团队自己也发现问题了,于是开发了 vgo,并且宣布不要 dep 了。

大概就是这样。
prolic
2019-02-13 15:30:32 +08:00
go mod(vgo)才是现在及未来的唯一指定官方包管理
cholerae
2019-02-13 17:51:12 +08:00
@index90 哦,我理解错了,我以为楼主要搞个全部包的镜像

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/534471

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX