解决go get下载缓慢的问题

go get下载第三方包的时候大多数情况要从github上面pull,有的时候还要从golang.org之类的地方下载源码. 由于众所周知的原因git clone速度极慢,golang.org根本不能访问,所以golang下载第三方包的时候总是极其麻烦. 最近写了个程序解决这个问题.

讲一下大概的思路.

我发现git clone和github上面的download zip是从不同的地方下载的,而download zip比git clone快很多,所以可以写个程序自动download zip,解压到安装第三方包的文件夹下,再编译.

至于golang.org,它在github.com/golang上面有镜像,至于其它一些网站也多半在github上面有镜像,程序里面获取下载链接的时候额外处理一下就可以了.

大概用法:把go get换成gogetpkg -p就行,如果第三方包的代码已经下载下来并放到正确位置,只需要安装的话,可以加上-nd,这样就会不下载直接安装.

举几个栗子:

1
2
3
4
5
6
7
gogetpkg -p github.com/jwhj/gogetpkg
# 我装我自己
gogetpkg -p golang.org/x/tools/imports
# 装package里面的package也是可以的
gogetpkg -p golang.org/x/tools/playground -nd
# 刚刚已经把整个golang.org/x/tools下载下来了
# 就不用再下载一次了

你会发现它并不能处理依赖,你需要手动处理……

项目地址:https://github.com/jwhj/gogetpkg