如何使用Golang安装第三方库_使用go get和go install下载包

go get用于下载并安装依赖库,更新go.mod;go install用于构建并安装可执行命令到$GOBIN。二者用途不同,不可混用,Go 1.18+后go get不再隐式安装命令。

在 Go 中安装第三方库主要通过 go get 命令完成,go install 则用于安装可执行命令(即带有 main 函数的程序)。两者用途不同,不能混用。

go get:下载并安装依赖包(含编译进当前项目)

go get 会下载指定模块、解析依赖、构建并将其添加到当前项目的 go.mod 文件中(Go 1.11+ 默认启用模块模式)。它默认只下载源码并更新依赖记录,不生成可执行文件。

  • 安装一个库(如 github.com/spf13/cobra):
    go get github.com/spf13/cobra
  • 安装特定版本:
    go get github.com/spf13/cobra@v1.8.0
  • 安装最新主版本(如 v2+)需带版本后缀:
    go get github.com/gorilla/mux@v1.8.5
  • 如果项目启用了 Go Modules,go get 会自动写入 go.modgo.sum;若未启用,建议先运行 go mod init your-module-name

go install:安装可执行命令(不修改当前项目依赖)

go install 从远程仓库下载指定包,并仅构建其中的 main 包,将生成的二进制文件放入 $GOBIN(默认为 $GOPATH/bin),供终端直接调用。它不会影响当前项目的 go.mod

  • 安装命令行工具(如 golang.org/x/tools/cmd/goimports):
    go install golang.org/x/tools/cmd/goimports@latest
  • 必须指定版本(Go 1.17+ 强制要求),常用 @latest@v0.12.0
  • 确保 $GOBIN 在系统 PATH 中,否则无法在终端直接运行该命令

常见问题与注意事项

Go 1.18+ 默认使用模块模式,且 go get 不再支持隐式安装可执行文件(即不再等价于旧版 go install)。以下操作容易出错:

立即学习“go语言免费学习笔记(深入)”;

  • 误用 go get 安装命令工具:例如 go get golang.org/x/tools/cmd/gopls 在新版本中只会下载源码,不会生成可执行文件,应改用 go install
  • 版本不明确导致拉取错误分支:不加 @version 可能拉取 master 分支(已弃用),推荐显式指定 @latest 或语义化版本
  • 代理设置影响下载:国内用户常因网络问题失败,可配置 GOPROXY:
    go env -w GOPROXY=https://goproxy.cn,direct

验证是否安装成功

检查依赖是否写入模块:
go list -m all | grep package-name

检查命令是否可用:
which goimportsgoimports -h

查看已安装的命令列表:
ls $GOBIN(或 go env GOBIN 确认路径)