可以的,CentOS 上完全可以同时安装并管理多个版本的 Golang。下面给你几种常见、可行的方式,从“最推荐”到“最原生”说明。
gvm(Go Version Manager)✅ 最常用类似 nvm(Node.js)
安装 gvm
yum install -y git curl
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
加载环境
source ~/.gvm/scripts/gvm
安装多个 Go 版本
gvm install go1.20.14
gvm install go1.21.10
gvm install go1.22.5
切换版本
gvm use go1.21.10
设置默认版本
gvm use go1.22.5 --default
✅ 优点
asdf(通用语言版本管理器)适合同时管理 Go / Node / Python
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
asdf plugin add golang
asdf install golang 1.21.10
asdf global golang 1.21.10
把不同 Go 版本放到不同目录,用软链接切换
/usr/local/go1.20
/usr/local/go1.21
/usr/local/go -> go1.21
使用
export PATH=/usr/local/go/bin:$PATH
切换版本
ln -sfn /usr/local/go1.20 /usr/local/go
✅ 优点:简单、无依赖
❌ 缺点:切换不够优雅
不想污染系统?
docker run -it golang:1.20
docker run -it golang:1.22
或 Docker + Makefile / CI
✅ 推荐用于:
| 场景 | 推荐方式 |
|---|---|
| 开发机 | gvm / asdf |
| 服务器 | 手动多目录 |
| 编译/测试 | Docker |
| 生产 | 单版本 + 容器 |
如果你愿意,可以告诉我:
我可以直接给你一套可复制的命令方案。