在 Debian 上切换 Golang 多版本,常见有 3 种主流方式。下面按“推荐程度”给你讲清楚。
update-alternatives(系统级,推荐)适合:系统全局切换 Go 版本
# 示例:安装 go1.20 和 go1.21
sudo rm -rf /usr/local/go1.20 /usr/local/go1.21
sudo tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz
sudo mv /usr/local/go /usr/local/go1.20
sudo tar -C /usr/local -xzf go1.21.linux-amd64.tar.gz
sudo mv /usr/local/go /usr/local/go1.21
sudo update-alternatives --install /usr/local/go go /usr/local/go1.20 20
sudo update-alternatives --install /usr/local/go go /usr/local/go1.21 21
sudo update-alternatives --config go
export PATH=/usr/local/go/bin:$PATH
✅ 优点:系统级、稳定
❌ 缺点:不够灵活(所有人共用)
g(Go 版本管理器,最方便)适合:开发环境、频繁切换
bash < <(curl -sSL https://git.io/J1OUN)
g install 1.21
g install 1.20
g use 1.21
g list
✅ 优点:简单、快、用户级
❌ 缺点:需额外工具
asdf(通用版本管理器)适合:同时管理 Go / Node / Python 等
git clone https://github.com/asdf-vm/asdf.git ~/.asdf
asdf plugin add golang
asdf install golang 1.21.0
asdf global golang 1.21.0
✅ 优点:统一管理
❌ 缺点:稍重
| 方式 | 适用场景 | 推荐指数 |
|---|---|---|
| update-alternatives | 服务器 / 系统级 | ⭐⭐⭐⭐ |
| g | 开发机 | ⭐⭐⭐⭐⭐ |
| asdf | 多语言环境 | ⭐⭐⭐ |
go version
如果你告诉我:
我可以直接给你一套最合适的具体方案。