概述
go install 是 Golang 用来编译和安装自定义 package 的工具。
如何使用 go install
go install [-i] [build flags] [packages]
使用这条命令将会编译并安装指定路径下的 package. 如果使用-i选项会在安装指定 package 的同时安装该 package 的所有依赖。
安装完成后,可执行文件的位置位于 G O P A T H / b i n 目 录 下 , 在 g o 1.9. x 及 之 前 的 版 本 中 , 依 赖 会 安 装 在 GOPATH/bin目录下,在 go 1.9.x 及之前的版本中,依赖会安装在 GOPATH/bin目录下,在go1.9.x及之前的版本中,依赖会安装在GOPATH/pkg目录下,在 go 1.10 以及之后的版本中,如果 package 不是 main package 的话,依赖会被缓存到 $GOTMPDIR目录下。
go install 和 go build 的区别
go install 和 go build 都会对自定义包进行编译和安装(go 1.10后二者都会对依赖库进行缓存),区别在于前者生成的可执行文件在$GOPATH/bin下,而后者生成的在执行go build命令的目录下。
.
├── bin
│ └── hello # by go install
└── src
└── hello
├── hello # by go build
└── hello.go
go install 和 go get 的区别
go get命令也可以安装自定义包,实际上它做了两件事:
将自定义包的源码下载到$GOPATH/src目录下
运行go install
所以,单独使用go install命令的场景一般是安装本地自定义包,比如修改了一个已有的第三方包,想要使用本地的版本,就可以使用go install命令。