在 Linux 上管理 多个 Go 版本 常见、成熟的做法有几种,从“最省事”到“最灵活”依次介绍。
gvm(Go Version Manager)✅适合:经常切换 Go 版本、需要多项目多版本共存
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
安装完成后,重新打开终端或执行:
source ~/.gvm/scripts/gvm
gvm install go1.20.14
gvm install go1.21.13
gvm install go1.22.5
gvm use go1.21.13
设为默认:
gvm use go1.21.13 --default
gvm list
✅ 优点:
GOROOT适合:服务器 / 固定环境
cd /usr/local
sudo rm -rf go
sudo wget https://go.dev/dl/go1.21.13.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.13.linux-amd64.tar.gz
/usr/local/go1.20
/usr/local/go1.21
/usr/local/go1.22
export GOROOT=/usr/local/go1.21
export PATH=$GOROOT/bin:$PATH
可写 alias:
alias go21='export GOROOT=/usr/local/go1.21; export PATH=$GOROOT/bin:$PATH'
asdf(通用版本管理器)适合:同时管理 Node / Python / Go
asdf plugin add golang
asdf install golang 1.21.13
asdf global golang 1.21.13
go.goroot| 场景 | 推荐 |
|---|---|
| 本地开发 | ✅ gvm |
| 服务器 | 手动多目录 |
| 多语言 | asdf |
| CI | 固定版本 |
如果你告诉我:
我可以给你更精确的配置示例。