go get
和 go install
的主要区别:
go get
的行为:
- 在 Go 1.17 之后,
go get
主要用于修改 go.mod,添加、删除或者更新依赖 - 安装的依赖包会记录在项目的 go.mod 文件中
- 下载的包会存储在本地缓存目录:
$GOPATH/pkg/mod/
下 - 示例:
go get github.com/gin-gonic/gin
go install
的行为:
- 用于编译和安装可执行程序
- 编译后的二进制文件会被安装到
$GOPATH/bin
或者$GOBIN
目录 - 不会修改当前项目的 go.mod
- 示例:
go install github.com/cosmtrek/air@latest
简单总结:
go get
: 管理项目依赖,文件在$GOPATH/pkg/mod/
go install
: 安装可执行程序,文件在$GOPATH/bin
或$GOBIN
要检查这些目录的具体位置,你可以使用:
# 查看 GOPATH
go env GOPATH
# 查看 GOBIN
go env GOBIN