嗨👋,我是后端有道,专注于分享高效、实用的后端开发技术与最佳实践,深度聚焦Go
语言在后端开发中的应用与实现。
go get
和go install
是GoModules
的两个工具链命令,用于下载第三方库,或者可执行文件。
1. go get
在GoModules
出现之前,go get
命令用于从远程代码库(如GitHub
)下载或更新Go
代码包,并将其源代码存储在$GOPATH/src
目录下。但是引入GoModules
后,$GOPATH/src
目录不再是必需的。
现在,go get
命令一方面用于下载或更新第三方Go
代码包,并将其存放在$GOPATH/pkg/mod
目录下;另一方面,它会将这些依赖添加到当前GoModules
项目的go.mod
文件中,并在Goland
中显示为外部依赖库:
go get
命令的下载规则如下:
- 如果
$GOPATH/pkg/mod
目录下不存在指定的依赖库,go get
会先下载该依赖库,存入$GOPATH/pkg/mod
目录下,并将其导入项目。 - 如果
$GOPATH/pkg/mod
目录下已存在该依赖库,go get
则会直接导入已存在的库到项目。
go get
命令有一个-u
参数,用于更新已安装的依赖库到最新版本。即使$GOPATH/pkg/mod
目录中已经存在该依赖库,使用-u
参数时,go get
会下载该依赖库的最新版本,并更新go.mod
文件中的依赖版本信息,以反映这些库的最新版本。
注意: 使用
go get -u
命令时需谨慎,因为它可能导致第三方库的最新版本与本地go
版本不兼容。
2. go install
用于编译并安装Go
代码包,并将生成的可执行文件存储到$GOPATH/bin
目录下。此命令也可能将一些Go
代码包下载到$GOPATH/pkg/mod
目录下。在使用go install
命令时,应该在包名后附加@version
,如果不确定要安装哪个版本,则可以使用@latest
。例如:
go install github.com/micro/micro/v2@latest
想看更多后端开发技术相关内容,可以关注我的技术笔记。其详细涵盖了
Go
语言的语法、框架和第三方库使用方法,以及数据库、DevOps
、中间件和计算机基础等相关知识。笔记中的所有内容均经过实际操作和验证,确保其准确性和实用性。
访问该网址查看详细内容:https://gitee.com/mundo-wang/technical-notes
3. 联系与区别
二者都用于从远程仓库(如GitHub
)下载包。go get
侧重于获取和更新包及其依赖,并更新go.mod
文件。go install
则专注于编译和安装可执行文件,而不会更新go.mod
文件。