Golang环境安装和依赖管理

Golang一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Golang提供了方便的安装包,支持Windows、Linux、Mac系统。

下载安装包
Golang的官网是https://golang.org/,如果官网打不开,可以访问https://golang.google.cn/这个域名。在官网点击Download Go会进入下载页,可以看到这里提供了针对各个系统的安装包,也提供了源码,可以下载源码编译安装。

下载运行安装包后,在terminal中执行go env命令,如果出现下面的输出说明已经安装成功。

GOROOT与GOPATH
仔细看上面的输出,会发现其中有一个GOPATH,又有一个GOROOT,那么到底哪个才是Golang的运行环境呢。

首先访问一下GOROOT这个路径,会发现其中包含bin、lib等文件夹。GOROOT就是Golang的安装路径,其中包含Golang编译、工具、标准库等,在安装后就会存在。

和GOROOT不同,GOPATH是工作空间路径,从go 1.8开始,如果GOPATH没有被设置,会有一个默认值,在Unix上为$HOME/go,在Windows上为%USERPROFILE%/go,当调用go build时,它会在GOPATH中寻找源码。访问一下GOPATH这个路径,会发现其中只有pkg、bin、src三个文件夹,并且里面基本是空的,这是一个约定的目录结构,src文件夹用来存放源码、pkg存放编译后生成的文件,bin存放编译后生成的可执行文件。项目代码需要在GOPATH/src路径下。

GOPATH路径下出了存放项目代码,还存放所有通过go get安装的依赖,项目代码和依赖代码是平级的,当各个项目都有很多依赖的时候,这个GOPATH路径下的代码量会多的吓人,并且难以拆分。

Vendor
2015年,Go 1.5加入了一个试验性的vendor机制(到2016年的Go 1.6版变为默认开启),vendor机制就是在项目中加入了vendor文件夹,用于存放依赖,这样就可以将不同项目的依赖隔离开。

当使用go run或者go build命令时,会首先从当前路径下的vendor文件夹中查找依赖,如果vendor不存在,才会从GOPATH中查找依赖。

然而我们安装依赖通常使用go get或者go install命令,这两个命令依旧会把依赖安装到GOPATH路径下。

猜你喜欢

转载自www.cnblogs.com/ticonci/p/13196341.html