Ubuntu无侵入升级Go版本
目标:卸载旧版 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
确认 go 和 gofmt 均指向正确路径:
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 完全一致。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 网络运维!