golang 环境配置
下载安装 golang
GO ENV
1 | go env #查看环境变量 |
配置GOPROXY
Go version >= 1.13 可以使用go env -w
命令设置
Goproxy.cn中国最可靠的 Go 模块代理。
https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md
1 | go env -w GOPROXY=https://goproxy.cn,direct |
GO111MODULE环境变量
go module 依赖管理工具
golang提供了一个环境变量GO111MODULE
,默认值为auto,如果当前目录里有go.mod文件,就使用go modules,否则使用旧的GOPATH和vendor机制,因为在modules机制下go get只会下载go modules,这一行为会在以后版本中成为默认值,这里我们保持auto即可,如果你想直接使用modules而不需要从GOPATH过度,那么把GO111MODULE
设置为on。
在 go1.11
之前,GOPATH
是GO项目必备的环境变量,用来存放Go的开发代码和第三方包代码,代码需要按照一定的目录安排。
$GOPATH
目录约定有三个子目录
src
存放源代码(比如:.go .c .h .s等) 按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。pkg
编译时生成的中间文件(比如:.a) golang编译包时bin
编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin
添加所有的bin目录)
go1.11
之后,使用go mod
依赖管理,不再需要按照$GOPATH
约定目录
1 | go mod init dzq #初始化go.mod文件 |
1 | go mod tidy #自动更新依赖关系 |
go 命令
go get
go get会做两件事:
- 从远程下载需要用到的包
- 执行go install
go install
go install 会生成可执行文件直接放到bin目录下,当然这是有前提的
你编译的是可执行文件,如果是一个普通的包,会被编译生成到pkg目录下该文件是.a结尾