最稳妥的Linux Go安装方式是下载官方预编译tar.gz包:先uname -m确认架构,再从go.dev/dl下载对应包;解压至/usr/local/go;配置GOROOT=/usr/local/go和PATH=$GOROOT/bin:$PATH到shell配置文件;设置GOPATH、GOBIN及国内代理goproxy.cn;最后验证go version、go run和CGO_ENABLED状态。
确认系统架构并下载对应 Go 二进制包
Linux 上安装 Go 最稳妥的方式是直接使用官方预编译的 tar.gz 包,避开包管理器可能提供的过旧版本(比如 Ubuntu apt 里的 golang-go 常滞后 2–3 个 minor 版本)。先运行 uname -m 确认 CPU 架构:x86_64、aarch64 或 arm64 —— 这决定了你该去 https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 下载哪个文件,例如 go1.22.5.linux-amd64.tar.gz 或 go1.22.5.linux-arm64.tar.gz。
别用 curl | tar 一行命令解压到 /usr/local,容易权限出错。建议:
- 用普通用户下载,再
sudo tar -C /usr/local -xzf go*.tar.gz - 检查解压后路径是否为
/usr/local/go(必须是这个路径,否则后续GOROOT易错) - 别覆盖已有
/usr/local/go目录,先sudo rm -rf /usr/local/go再解压
配置 GOROOT 和 PATH 到 shell 启动文件
Go 官方不强制要求设置 GOROOT,但显式声明能避免多版本共存时的混乱,尤其当你以后用 go install golang.org/dl/go1.21@latest 管理多个 SDK 时。正确做法是把这两行加到 ~/.bashrc 或 ~/.zshrc(取决于你用的 shell):
export GOROOT=/usr/local/go export PATH=$GOROOT/bin:$PATH
注意顺序:$GOROOT/bin 必须在 $PATH 前置位,否则系统可能优先调用旧版 go(比如 `/usr/bin/go`)。改完后执行 source ~/.bashrc(或对应文件),再运行 which go 应输出 /usr/local/go/bin/go,go version 应显示你刚装的版本。
常见错误:
- 写成
export PATH=$PATH:$GOROOT/bin→ 新版go永远不会被调用 - 在
/etc/profile里设GOROOT却没导出PATH→ 当前用户仍找不到go命令 - 用
sudo su切换后发现go不可用 → root 用户的 shell 配置未同步,需单独配置
初始化 GOBIN 和模块代理(国内必做)
默认情况下 go install 会把可执行文件放到 $GOPATH/bin,而 $GOPATH 默认是 ~/go。为避免每次都要手动加 ~/go/bin 到 PATH,建议统一设为 GOBIN:
export GOPATH=$HOME/go export GOBIN=$HOME/go/bin export PATH=$GOBIN:$PATH
然后务必配置国内模块代理,否则 go mod download 或 go get 会超时失败: