Gogolang:解决依赖包模块安装问题
Go对于初学有2⼤问题:
1 是依赖的安装
2 gopath内的⽬录结构的处理,因为go依赖的路径问题,绝对相对路径,所以这点要很⼩⼼处理
最近在学习Go编写后端服务,先放出谢⼤的书镇楼:
学习Go的⼈,第⼀个要解决的问题,就是安装依赖,也就是我们⽤的go get命令,由于你懂得原因,Go安装依赖总是timeout(获取超时),就算挂公司的vpn也不⾏,说个实在话:golang官⽹都上不去你还想安装依赖??
nodejs到底是干嘛用的呢
国内⽹络是可以访问github的,那么⽤github代替呢?举个栗⼦:
go get github/micro/micro
我敢保证,不是每次都⾏得通,有时也timeout,为啥,因为我试过!
后来我去看了这篇⽂章还有其他⽂章,结合谢⼤的书,总结了两个个解决⽅案:
⽅案⼀:gopm,缺点:慢!优点:⾃动!
⽅案⼆:github clone(或者⽹页下载)+ src +go install
先跟⼤家说个知识:
1.会涉及go path和go get的原理,这个⾃⼰去看谢⼤的书,例如我的电脑是mac mini,那么我的默认go⼯作⽬录就是:/users/⽤户名/go,其他不多说
2.我们的依赖通常放在 go/src⾥(这⾥的go就是上⼀⾏的go路径,下同),我们进到这个⽬录⾥,在有.go⽂件的地⽅,执⾏go install
,golang就会把src的 .go 编译成包⽂件 .a⽂件,放到同等⽬录的go/src中,就是把包⽂件的⽬录放得跟src的⼀样,只是src改为pkg
3.代码
import (
"github/micro/go-micro"
)
上⾯的不要以为是会去github下载依赖,如果是的话我们还有⼿动go get获取依赖⼲嘛?
好,下⾯拿我上⾯要安装的依赖来试试
go get github/micro/micro
我们全程都不必⽤到 go get
1.去github到micro的仓库,下载micro,注意放到 go/src/github/micro  (注意,因为下载的micro⾥还有个叫micro的⽂件夹,所以名字会叫micro/micro)
2.去到micro ⾥执⾏install,不同机器报错不同,例如我的机器缺少的⽂件数量⽐较少,结果如下:
我是⽤vscode哈
好的,这时我们看得出缺了crypto的包,并且是src的⽽不是pkg的,因此只需要下载源码放到src就好,⽽不⽤go install,那我们就愉快的去github下载它的源码吧!
怎么?
github搜索 crypto
把⾥⾯整个下载下来,迅雷下载可以提速,放到src对应路径(⼀般github的路径如下:github/作者github名/仓库名/具体go⽂件),需要包时执⾏install,这个过程要重复⼏次,直到收到下完所有的包
顺便提⼀句,由于包依赖太多,楼主已吐⾎
2019.04.03更新
最近我探索到⼀种⽅式,不⽤开vpn的
⾸先看问题,如果少源码,也就是第1.个,就Github源码下载放到src相应的⽬录中,如果少包,也就是第2.个,不但要下载源码放到src 中,还要去到相应⽬录执⾏go install,但是这样效率吐⾎,因为通常a依赖b,b依赖c,c依赖e 翻桌⼦啊
如何解决,就是直接到项⽬的根⽬录⾥先执⾏go get,效果和nodejs 执⾏npm install差不多,完了后,get不了的包(⼀般github都get得下来,就是或者google⽹站的包或者说源码get不下来,那么你就去github搜索包在github的镜像,⼿动下载按照前⾯说的做,放到相应⽬录,需要时执⾏go install,这样最快,gopm慢到吐⾎)
1.
cannot find package "github/..."in any of:
E:\Go\
2.
cannot find package "github/..."in any of:
K:\go\pkg\github\...