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