Homebrew 是安装 Go 的前提,未安装需先执行安装命令;安装后必须运行 brew --version 和 brew update 验证并更新索引;brew install go 后需手动 source ~/.zshrc 使 PATH 生效;升级时须先 brew update 再 brew upgrade go,并确认 go version 已更新。

确认 Homebrew 是否已就位
Homebrew 是整个流程的前提,不是可选项。很多用户卡在 brew install go 报错“command not found”,其实根本没装 brew。
- 运行
which brew—— 如果返回空,说明未安装 - 直接执行安装命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装完成后,务必运行
brew --version验证;再顺手执行brew update,避免因索引陈旧导致后续安装失败
用 brew 安装 Go 并让 go 命令真正可用
执行 brew install go 很快,但很多人装完发现 go version 仍报 command not found —— 这不是安装失败,而是 shell 没加载新 PATH。
- Homebrew 会把
go二进制放在/opt/homebrew/bin/go(Apple Silicon)或/usr/local/bin/go(Intel),并尝试写入你的 shell 配置文件(如~/.zshrc) - 但它不会自动重载配置。你必须手动执行:
source ~/.zshrc
(macOS Catalina 及以后默认用 zsh) - 验证是否生效:
go version
——两者都应有输出,且
which gowhich go的路径需匹配 Homebrew 的安装位置
升级 Go 版本:别只 brew upgrade,先看清楚当前状态
brew upgrade go 看似简单,但容易忽略两个关键事实:它只升级到 Homebrew 仓库里的最新稳定版(未必是 Go 官方最新版),且不保留旧版本。
- 升级前建议先查清现状:
brew info go
brew outdated - 执行升级:
brew update && brew upgrade go
(brew update必须前置,否则可能跳过更新) - 升级后再次运行
go version,确认输出的版本号已变更;如果没变,大概率是 shell 缓存或 PATH 未刷新,重新source ~/.zshrc - 注意:Homebrew 默认不支持多版本共存。若需长期保留多个 Go 版本(比如维护老项目),应改用
g工具(brew install g),而非依赖brew link切换 —— 后者在较新 Homebrew 中已被弃用,且易与go@1.x公式冲突
常见错误现象与对应检查点
以下问题高频出现,几乎都和环境变量或缓存有关,和 Go 本身无关:
立即学习“go语言免费学习笔记(深入)”;
-
“command not found: go”:检查
which brew→brew --version→echo $PATH是否含/opt/homebrew/bin或/usr/local/bin→ 最后确认是否执行了source ~/.zshrc -
“go: command found but version unchanged after upgrade”:极可能是终端未重启或配置未重载;也可能是之前手动设过
PATH覆盖了 Homebrew 的路径,检查~/.zshrc里是否有硬编码的/usr/local/go/bin -
“go run hello.go 报错 cannot find package”:这不是安装问题,是 Go Modules 未初始化。进入项目目录后先运行
go mod init example.com/hello再试
source ~/.zshrc。这行命令看起来最无害,却是 80% “装了却用不了” 问题的解药。










