在 CentOS 上切换 / 管理 Golang 版本,常见有 ** alternatives 方式、手动换软链、版本管理工具(gvm / asdf)** 几种。下面按“最实用 → 最灵活”给你说明。
alternatives(官方推荐、最干净)适合:系统级切换,多个 Go 版本共存
# 示例目录
/usr/local/go1.20
/usr/local/go1.21
alternatives --install /usr/bin/go go /usr/local/go1.20/bin/go 20
alternatives --install /usr/bin/go go /usr/local/go1.21/bin/go 21
alternatives --config go
按提示选择编号即可。
✅ 验证:
go version
/usr/local/go1.20
/usr/local/go1.21
ln -sfn /usr/local/go1.21 /usr/local/go
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
切换时只需改软链。
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
gvm install go1.21.0
gvm use go1.21.0
或设为默认:
gvm use go1.21.0 --default
⚠️ 注意:gvm 在 CentOS 上可能需要:
yum install -y git make bison gcc
# 安装 asdf
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
# 安装 go 插件
asdf plugin add golang
# 安装版本
asdf install golang 1.21.0
# 切换
asdf global golang 1.21.0
yum install golang 的版本通常很旧,不建议source ~/.bashrc
go version
| 场景 | 推荐 |
|---|---|
| 服务器固定环境 | alternatives |
| 个人开发 | gvm / asdf |
| 简单临时 | 软链 |
如果你愿意,可以告诉我:
我可以直接给你可复制的命令方案。