在 macOS 上正确全局安装 Go 工具 air(解决 command not found 问题)

作者:doxwant 发布时间: 2026-03-12 阅读量:3 评论数:0

最近想用 air 做 Go 项目的热重载开发,但在安装时遇到了一个经典问题:

zsh: command not found: air

明明已经执行了安装命令,为什么终端还是找不到 air?这篇文章就来完整复盘整个过程,并给出一劳永逸的解决方案。

❌ 错误方式:还在用 go get 安装命令行工具?

我一开始尝试:

go get -u github.com/air-verse/air

结果报错:

go: go.mod file not found in current directory or any parent directory.
'go get' is no longer supported outside a module.

这是因为从 Go 1.17 开始,官方已弃用 go get 来安装可执行程序。go get 现在仅用于管理模块依赖,不能用来安装全局命令

✅ 正确做法是使用 go install + 版本标签:

go install github.com/air-verse/air@latest

这条命令会把 air 编译并安装到 $GOPATH/bin 目录下(通常是 ~/go/bin/air)。

🔍 验证是否安装成功

运行:

ls $(go env GOPATH)/bin/air

输出:

/Users/dengxiwang/go/bin/air

说明二进制文件确实存在!但为什么直接输入 air 还是提示“command not found”?

答案很简单:~/go/bin 没有加入系统的 PATH 环境变量

✅ 永久解决方案:将 $GOPATH/bin 加入 PATH

由于我使用的是 zsh(macOS Catalina 及以后的默认 shell),需要修改 ~/.zshrc 文件。

1. 编辑配置文件

echo 'export PATH="$PATH:$(go env GOPATH)/bin"' >> ~/.zshrc

这行命令做了两件事:

  • 动态获取 GOPATH(避免硬编码路径)

  • $GOPATH/bin 添加到 PATH 末尾

2. 重新加载配置

source ~/.zshrc

3. 验证

新开一个终端窗口,运行:

which air
# 输出:/Users/dengxiwang/go/bin/air

air -v
# 输出:air version v1.50.3

🎉 成功!

💡 小贴士

  • 所有通过 go install xxx@version 安装的 Go 工具(如 golangci-lintmockgenginkgo 等)都会放在同一个目录,只需配置一次 PATH。

  • 使用 $(go env GOPATH) 而非写死路径,让配置更具移植性。

评论