在 Debian 上切换 Go(Golang)版本,常见有 系统级切换 和 用户级/项目级切换 两种方式。下面按使用场景给你讲清楚。
# 示例:安装 go1.20 和 go1.21
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.21.linux-amd64.tar.gz
可以把不同版本放在不同目录:
sudo tar -C /opt/go1.20 -xzf go1.20.linux-amd64.tar.gz
sudo tar -C /opt/go1.21 -xzf go1.21.linux-amd64.tar.gz
sudo ln -sfn /opt/go1.21 /usr/local/go
确认:
go version
✅ 适合:服务器 / 全系统统一版本
sudo update-alternatives --install /usr/bin/go go /opt/go1.20/bin/go 20
sudo update-alternatives --install /usr/bin/go go /opt/go1.21/bin/go 21
sudo update-alternatives --config go
go version
✅ 适合:多系统版本管理,不需要额外工具
export PATH=$HOME/sdk/go1.21/bin:$PATH
写到 ~/.bashrc 或 ~/.zshrc:
echo 'export PATH=$HOME/sdk/go1.21/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
go install golang.org/dl/go1.21@latestgo install golang.org/dl/go1.21@latest
go1.21 version
go1.21 build
✅ 适合:多项目、多版本并行
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
使用:
gvm install go1.21
gvm use go1.21
| 场景 | 推荐方式 |
|---|---|
| 服务器固定版本 | /usr/local/go + 软链 |
| 多系统版本 | update-alternatives |
| 本地开发 | golang.org/dl/goX.Y |
| 多项目复杂 | gvm |
如果你愿意,可以告诉我:
我可以直接给你一套最合适的配置。