首页 / Go 语言入门教程 / go install 与工具安装

Go 语言入门教程

go install 与工具安装

本教程共 80 篇 · 第 69 篇 · 更新于 2026-07-27 · 约 7 分钟阅读

GoGo 入门教程go installgo getGOBIN命令行工具工具安装

69. go install 与工具安装

本节目标:学会用 go install pkg@version 安装命令行工具,理解 go get 和 go install 的分工,配置好 GOBIN。

安装命令行工具

Go 写的工具程序用 go install 安装。语法是在包路径后面加 @版本

# 安装最新版
go install github.com/go-delve/delve/cmd/dlv@latest

# 安装指定版本
go install golang.org/x/tools/gopls@v0.16.0

# 安装某个 commit
go install github.com/spf13/cobra-cli@latest

安装后生成的可执行文件放在 $GOBIN(默认是 $GOPATH/bin)。把这个目录加到系统 PATH 里就能直接用。

@version 是什么

@version 是版本查询语法,几种常见写法:

go install pkg@latest           # 最新稳定版
go install pkg@v1.2.3           # 指定语义版本
go install pkg@v1.2             # 次版本下最新的 patch
go install pkg@main             # main 分支最新
go install pkg@HEAD             # 默认分支最新
go install pkg@a1b2c3d          # 指定 commit hash
Note

@version 时,go install 会忽略当前目录的 go.mod,直接从远程拉指定版本。这很重要:你可以在任何地方安装工具,不影响当前项目。

不带版本的情况

go install example.com/cmd

不带 @version 时,go install 会在当前模块的 go.mod 里找这个包的版本,按 go.mod 的要求编译。这种用法适合「安装自己模块里的命令」。

go get vs go install 的变更

历史上 go get 既管依赖又管装工具,容易混乱。Go 1.17 起拆分:

命令1.17 前1.17+
go get加依赖 + 装二进制只管 go.mod 依赖
go install pkg@version不存在专门装二进制

Go 1.18 起 go get 彻底不编译了,只改 go.mod。

Warning

老教程里 go get -u github.com/x/y 装工具的写法已废弃。现在装工具一律用 go install pkg@version。如果你看到 go get 装二进制的教程,那是过时的。

现代工作流

日常开发的标准动作:

  1. 管理项目依赖:在项目目录里 go get / go mod tidy
  2. 安装全局工具:在任意目录 go install pkg@version
  3. 运行项目go rungo build

三条互不干扰。项目依赖不会污染全局,全局工具也不影响项目 go.mod。

GOBIN 配置

安装的二进制放哪?由 GOBINGOPATH/bin 决定:

go env GOBIN      # 查看设置
go env GOPATH     # 查看 GOPATH

如果 GOBIN 没设,默认用 $GOPATH/binGOPATH 默认是 $HOME/go

把 bin 目录加到 PATH:

# Linux/macOS,加到 ~/.bashrc 或 ~/.zshrc
export PATH=$PATH:$(go env GOPATH)/bin

# Windows PowerShell
$env:PATH += ";$(go env GOPATH)\bin"

设好之后,安装的工具就能直接敲命令名用:

go install github.com/go-delve/delve/cmd/dlv@latest
dlv version  # 直接可用

常用工具推荐

几个开发常用的工具,都用 go install 装:

# gopls 语言服务器(VS Code Go 扩展会自动装)
go install golang.org/x/tools/gopls@latest

# dlv 调试器
go install github.com/go-delve/delve/cmd/dlv@latest

# goimports 自动管理 import
go install golang.org/x/tools/cmd/goimports@latest

# govulncheck 漏洞扫描
go install golang.org/x/vuln/cmd/govulncheck@latest

# staticcheck 静态分析
go install honnef.co/go/tools/cmd/staticcheck@latest

版本不匹配怎么办

装工具时报版本错误,可能是工具要求的 Go 版比你本地高。两种解法:

# 方法一:升级本地 Go 到最新

# 方法二:用 GOTOOLCHAIN 自动切换
GOTOOLCHAIN=go1.26.0 go install pkg@latest

Go 1.21+ 的工具链机制会自动下载需要的版本来编译,不用手动装多个 Go。

小结

  • go install pkg@version 安装命令行工具,装到 $GOBIN
  • @version 指定版本,@latest 取最新
  • @version 忽略当前 go.mod,任何目录都能装
  • go get 只管依赖,go install 只管装二进制,1.18 起彻底分开
  • $GOPATH/bin 加到 PATH,装完就能用
  • 老式 go get 装二进制已废弃

下一节讲工作区模式,管理多个模块。