Homebrew 是 macOS 安装 Go 最稳妥方式,但需手动配置 PATH、禁用 GOROOT、设置 GOPROXY 代理,并注意升级后版本兼容性;Apple Silicon 路径为 /opt/homebrew/bin,Intel 为 /usr/local/bin。
Homebrew 装 Go 是最稳妥的 macOS 方式,但直接 brew install go 后常遇到 go 命令找不到、GOROOT 冲突、或 go mod 报错——根本原因是 Homebrew 安装的 Go 默认不自动写入 shell 环境路径,且可能与手动下载的 SDK 共存冲突。
Homebrew 自身过旧会导致 go 公式不可用或安装低版本(如 1.20 之前),尤其在 Apple Silicon Mac 上易出兼容问题。
brew --version,确保输出版本 ≥ 4.0.0brew update(不是 upgrade)拉取最新 formula 清单https://brew.sh 复制安装命令执行Homebrew 将 Go 安装到 /opt/homebrew/bin/go(Apple Silicon)或 /usr/local/bin/go(Intel),但不会自动添加到 $PATH —— 这是命令失效的主因。
brew install go,等待完成which go,若为空,说明 shell 未加载 Homebrew 的 bin 目录brew --prefix go(输出类似 /opt/homebrew/opt/go),其 bin/go 才是可执行文件macOS 10.15+ 默认使用 zsh,~/.zshrc 是环境变量入口;改错文件(如误改 ~/.bash_profile)会导致配置不生效。
echo $SHELL,输出应为 /bin/zsh
code ~/.zshrc(或用 nano),追加一行:export PATH="/opt/homebrew/bin:$PATH"(Apple Silicon)或
export PATH="/usr/local/bin:$PATH"(Intel)
source
~/.zshrc,再运行 go version 应显示类似 go version go1.22.4 darwin/arm64
GOROOT —— Homebrew 安装的 Go 会自动推导,硬设反而导致 go install 失败Go 1.18+ 默认启用 GO111MODULE=on,但国内直连 proxy.golang.org 常超时,必须显式配置代理,否则 go mod download 卡住。
go env GO111MODULE,应为 on
go env -w GOPROXY=https://mirrors.tuna.tsinghua.edu.cn/goproxy/,direct
mkdir hello && cd hello输出
go mod init hello
echo 'package main\nimport "fmt"\nfunc main() { fmt.Println("ok") }' > main.go
go run main.go
ok 即成功真正容易被忽略的是:Homebrew 更新 Go 后(如 brew upgrade go),GOROOT 实际指向新路径,但旧项目若在 go.mod 中锁定了 go 1.20,运行时仍会报版本不匹配——此时不能删 GOROOT,而应让项目适配或用 go install golang.org/dl/go1.20@latest && go1.20 download 临时切换。