
macOS Sierra 升级后,Go 1.6.2 因兼容性问题需升级至 1.7.5 或更高版本,但官方 pkg 安装器可能未完全清除旧版残留路径(如 /usr/local/go 和 /usr/local/bin/go),导致 go version 仍显示旧版本。手动清理并重装可解决该问题。
macos sierra 升级后,go 1.6.2 因兼容性问题需升级至 1.7.5 或更高版本,但官方 pkg 安装器可能未完全清除旧版残留路径(如 `/usr/local/go` 和 `/usr/local/bin/go`),导致 `go version` 仍显示旧版本。手动清理并重装可解决该问题。
在 macOS Sierra 环境下升级 Go 时,即使运行了新版(如 Go 1.7.5)的 .pkg 安装程序,并确认提示“已移除旧版本”,终端中执行 go version 仍返回 go1.6.2 darwin/amd64,这通常并非安装失败,而是旧版 Go 的二进制文件或环境残留未被彻底清除所致。
Go 的 macOS 官方安装包默认将运行时和标准库安装到 /usr/local/go,并将 go 可执行文件软链接或直接复制至 /usr/local/bin/go。然而,安装器的“卸载”逻辑有时仅覆盖 /usr/local/go,而忽略 /usr/local/bin/go 的残留(尤其当用户曾手动修改过该路径),或因 shell 缓存、PATH 优先级等原因导致旧版命令仍被调用。
✅ 正确的清理与升级步骤如下:
-
彻底删除旧版 Go 相关路径:
sudo rm -rf /usr/local/go sudo rm -f /usr/local/bin/go sudo rm -f /usr/local/bin/gofmt
-
确认无残留:
which go # 应返回空 ls -l /usr/local/bin/go # 应提示 "No such file or directory"
重新运行 Go 1.7.5(或更新版本)pkg 安装器
下载地址:https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd
安装完成后,重启终端会话(或执行source ~/.zshrc/source ~/.bash_profile,视 shell 而定),确保 PATH 缓存刷新。-
验证升级结果:
go version # 输出示例:go version go1.7.5 darwin/amd64 go env GOROOT # 应为 /usr/local/go
⚠️ 注意事项:
- 不要仅依赖
brew install go(尤其在系统级 Go 已存在时),Homebrew 版本可能与 pkg 安装路径冲突;若使用 Homebrew,请先brew uninstall go并清理/usr/local/bin/go。 - 检查
PATH中/usr/local/bin是否在/usr/bin之前(通过echo $PATH查看),避免系统自带(或旧版)go被优先匹配。 - Go 1.7+ 已原生支持 macOS Sierra,无需额外补丁;后续建议直接升级至 Go 1.19+(当前稳定 LTS 版本),以获得安全更新与现代语言特性支持。
通过上述手动清理 + 重装流程,可绕过 pkg 安装器的卸载盲区,确保 Go 运行时与工具链完全更新,保障开发环境的一致性与稳定性。











