在 CentOS 上更新 Golang 的常用做法
一、准备与版本确认
uname -m(常见为 x86_64)go version二、方法一 官方二进制包覆盖升级(简单稳妥)
wget https://golang.google.cn/dl/go1.22.0.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
nano ~/.bashrcsudo nano /etc/profile.d/go.shexport GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 国内网络可选:
export GOPROXY=https://goproxy.cn,direct
source ~/.bashrc(或 source /etc/profile.d/go.sh)go version
go env GOROOT GOPATH GOPROXY
sudo mv /usr/local/go /usr/local/go.bak-$(date +%F)。三、方法二 使用 GVM 进行多版本管理(推荐给多项目/多版本场景)
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source ~/.gvm/scripts/gvm
gvm listall # 查看可安装版本
gvm install go1.21.0 # 安装指定版本(可加 -B 使用预编译包加速)
gvm use go1.21.0 --default # 切换并使用默认版本
gvm list # 查看已安装版本
gvm pkgset create myproj
gvm pkgset use myproj
四、方法三 使用 Docker 运行最新版(环境隔离)
docker pull golang:latest
docker run -it --rm -v "$PWD":/app -w /app golang:latest bash
# 在容器内执行:go build -o myapp
五、常见问题与建议
sudo yum remove golang -y 再覆盖安装,或直接覆盖 /usr/local/go 并更新 PATH。~/.bashrc;所有用户可用 /etc/profile.d/go.sh 统一管理。GOPROXY=https://goproxy.cn,direct 提升模块下载速度。go version 外,建议执行 go env 检查 GOROOT/GOPATH/GOPROXY 是否符合预期。