最新go get 和 go install 详解

最新go get 和 go install 详解

go版本1.20

1、在Go中具有许多第三方包,我们可以通过import导入这些包,并在程序中使用。

我们可以在程序中可以使用可以使用go getgo install命令下载并安装第三方包,并导入我们的程序中。
基本语法为:
go get [package]
go install [package]
那么go getgo install命令有什么区别,分别在什么情况下使用呢?

2、get和install命令区别。

get命令用于从远程拉取包的源代码并存放在你的工作区,如果源代码为可执行代码,它还会紧接着执行go install,将源码编译为可执行文件。并存放在bin目录下。
例如:运行
go get example.com/package
在有需要时,可以使用 @ 符号指定特定的版本。例如:
go get example.com/[email protected]
在最新的Go1.20中,Go 将会下载 example.com/package 的源代码,并将其安装到你的工作区的pkg文件夹下的mod文件夹中。

如果有些Go包为命令行工具,那么它将会紧接着执行install命令把命令行的可执行文件放置在你的 bin 目录下。如果你希望只拉取包,而不下载可执行文件,那么你可以运行:
go get -d example.com/package

如果你不知道你的工作区,你可以使用go env | grep GOPATH查看你当前工作区,
可以使用go env | grep GOBIN,查看你的可执行文件存放的bin目录。

install命令用于编译并安装包。它会将远程包的二进制文件(即可执行文件)安装到工作区的 bin 目录下,而不会下载包的源代码。
例如运行:
go install example.com/package将不会下载源代码,只会下载命令行的可执行代码。

3、get可选参数。

最后贴一个可选参数。

get命令的可选参数

附加参数 备注
-v 显示操作流程的日志及信息,方便检查错误
-u 下载并安装所有的包和依赖的包的,以保证它们都是最新的版本,然后重新编译和安装。如果不包含该标志参数的话,而且如果该包本地已经存在,那么这个包的代码将不会被自动更新。
-d 只下载代码包,不安装代码包
-insecure 允许使用不安全的 HTTP 方式进行下载操作
-t 同时也下载需要为运行测试所需要的包
-fix 在下载代码包后先运行一个用于根据当前 Go 语言版本修正代码的工具,然后再安装代码包

install命令可选参数

参数名 格式 含义
-o -o file 指定编译后二进制文件名
-a -a 强制重新编译涉及的依赖
-s -s 省略符号表并调试信息
-w -w 省略 DWARF 符号表
-p -p 指定编译过程中的并发数,默认为 CPU 数
-work -work 设置该参数后不会在程序结束后删除编译的临时文件,可用于查看编译生成的文件
-n -n 加上该参数可以查看编译的过程,但不会继续执行编译后的二进制文件
-x -x 加上该参数可以查看编译的过程,会继续执行编译后的二进制文件

你可能感兴趣的:(golang,开发语言,后端)