目标:卸载旧版 Go,安装最新版,且不修改任何 shell 环境变量~/.bashrc~/.profile 等),通过 update-alternatives 系统级管理版本。

一、卸载旧版本

# 移除 apt 安装的旧版本(若有)
sudo apt remove --purge golang-* -y
sudo apt autoremove -y

# 清理残留文件
sudo rm -f /usr/bin/go /usr/bin/gofmt
sudo rm -rf /usr/local/go

二、下载并安装最新版 Go

截至 2026 年 5 月,Go 最新稳定版为 1.26.2。前往 Go 官方下载页 确认最新版本。

2.1 下载

cd /tmp
wget https://dl.google.com/go/go1.26.2.linux-amd64.tar.gz

如遇网络问题,可使用国内镜像:

wget https://mirrors.aliyun.com/golang/go1.26.2.linux-amd64.tar.gz

2.2 校验(推荐)

echo '990e6b4bbba816dc3ee129eaeaf4b42f17c2800b88a2166c265ac1a200262282  go1.26.2.linux-amd64.tar.gz' | sha256sum -c
# 输出: go1.26.2.linux-amd64.tar.gz: OK

2.3 解压安装

# 解压到系统库目录
sudo tar -C /usr/lib -xzf go1.26.2.linux-amd64.tar.gz

# 重命名为版本目录(便于多版本管理)
sudo mv /usr/lib/go /usr/lib/go-1.26.2

# 清理下载包
rm go1.26.2.linux-amd64.tar.gz

三、注册系统级软链接(关键)

使用 update-alternatives 管理,无需改动 $PATH,系统自动指向 /usr/bin/go

sudo update-alternatives --install /usr/bin/go go /usr/lib/go-1.26.2/bin/go 100
sudo update-alternatives --install /usr/bin/gofmt gofmt /usr/lib/go-1.26.2/bin/gofmt 100

多版本切换

若后续安装其它版本(如 go1.25.9),重复上述 --install 步骤后即可切换:

sudo update-alternatives --config go
# 交互选择要使用的版本

四、验证

go version
# 输出: go version go1.26.2 linux/amd64

which go
# 输出: /usr/bin/go

确认 gogofmt 均指向正确路径:

update-alternatives --display go

五、国内网络配置(按需执行)

若需拉取依赖,直接写入 Go 专用配置(存储在 ~/.config/go/env),不影响系统环境变量

go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=sum.golang.org

验证:

go env GOPROXY
# 输出: https://goproxy.cn,direct

六、ARM64 架构说明

若服务器为 ARM64(如鲲鹏、Apple Silicon),将下载链接和校验值替换为:

wget https://dl.google.com/go/go1.26.2.linux-arm64.tar.gz
# sha256sum: c958a1fe1b361391db163a485e21f5f228142d6f8b584f6bef89b26f66dc5b23

后续步骤与 amd64 完全一致。