usage: go install [build flags] [packages]
Install编译并安装由导入路径命名的包。
可执行文件安装在GOBIN环境变量命名的目录中,默认是$GOPATH/bin ,如果GOPATH未设置是$HOME/go/bin。$GOROOT中的可执行文件安装在$GOROOT/bin或$GOTOOLDIR而不是$GOBIN中。
如果参数有版本后缀(如@latest或@v1.0.0),go install以模块感知模式构建包,忽略当前目录或任何父目录中的go.mod文件。这对于安装可执行文件而不影响主模块的依赖性是有帮助的。
为了消除构建中使用的模块哪一个版本的歧义参数必须满足以下约束:
-参数必须是包路径或包模式(带有“…”通配符)。它们不能是标准包(如fmt)、元模(std、cmd、all)或相对或绝对文件路径。
-所有参数必须具有相同的版本后缀。不同的查询不是允许,即使它们引用相同的版本。
-所有参数必须引用同一模块中相同版本的包。
-包路径参数必须引用主包。模式参数将只匹配主包。
-没有模块被认为是main模块。如果一个模块包含了在命令行上命名的包,且有一个go.mod文件,它不能包含replace和exclude这样的指令,这将导致其被解释的与主模块不同。模块不得要求
更高版本的自己。
-任何模块中都不使用vender目录。(go install下载的模块zip文件中是不包含vender目录的)
如果参数没有版本后缀,go install可能会在模块感知模式或GOPATH模式,取决于GO111MODULE环境变量和go.mod文件的存在。有关详细信息,请参阅“转到帮助模块”。
如果启用了模块感知模式,go install将在main模块上下文中运行。
禁用模块感知模式时,其他软件包将安装在目录$GOPATH/pkg/$GOOS_$GOARCH。当启用模块感知模式时,其他包已构建并缓存,但未安装。
-i标志还安装命名包的依赖关系。
-i标志已弃用。编译的包将自动缓存。