golang 管理多版本

根据官方文档manage-install,我们使用go install 安装新版本golang

安装下载新版本

1
2
3
4
$ go install golang.org/dl/go1.18@latest
$ go1.18 download
$ go1.18 version
go version go1.18 linux/amd64

但是这个时候go1.18 并不是默认版本

设置新版的go1.18为默认 版本

which 得到程序的执行路径

1
2
which gogo1.18
/root/go/bin/go1.18

使用update-alternatives 管理多版本go
update-alternatives --install <软链> <名字> <路径> <优先级>

1
update-alternatives --install /usr/bin/go go $(which go1.18) 900 

其他update-alternatives 命令

1
2
3
update-alternatives --display go #查看已安装
update-alternatives --auto go #自动按优先级(最大的数)设置版本
update-alternatives --config go #修改版本

总结

备份旧版

1
2
3
4
5
6
$ which go
/usr/local/go/bin/go
$ go version
go version go1.16 linux/amd64
$ mv /usr/local/go/bin/go /usr/local/go/bin/go1.16
$ update-alternatives --install /usr/bin/go go $(which go1.16) 800

一行命令安装新版golang

1
v=1.17 && go install golang.org/dl/go${v}@latest && go${v} download && update-alternatives --install /usr/bin/go go $(which go${v}) 900