最近遇到了一个项目,Go 1.19 版本不支持,所以只能更换旧版进行开发。查阅文档发现 Golang 是支持多版本共存的。下面讲一下方法。

以下内容均 不需要 root 权限。

检查环境变量

首先,确保当前用户已经配置了 GOPATH 环境变量,目的是后面配置多个 Golang 版本方便。

echo $GOPATH

应该会显示 /home/username/go

如果没有的话,打开 ~/.bashrc(如果用的是 zsh 则是 .zshrc,下同)。写入以下内容:

export GOPATH=/home/username/go
export PATH=$PATH:$GOPATH/bin

保存退出,然后输入以下命令生效:

source ~/.bashrc

安装和下载另一版本的 Golang

输入以下命令获取和安装另一版本的 Golang(以 go 1.17.13 版本为例,下同):

go install golang.org/dl/go1.17.13@latest
go1.17.13 download

其中 golang.org/dl/go1.17.13 是下载链接,这里使用的是官方的下载站。具体的版本号可以参考 下载页面 下方的版本列表。

管理多个版本

如果需要调用特定版本的 Golang,可以输入 go1.17.13 后面跟需要的命令。

如果需要查找特定版本的 Golang 安装位置,可以输入 go1.17.13 env GOROOT。但请注意,go1.17.13 这个二进制文件的位置在 /home/username/go/bin 下(也就是第一步中配置的 $GOPATHbin 文件夹下)。

如果需要卸载特定版本,只需删除 go1.17.13 env GOROOT 命令显示的目录,和 go1.17.13 这个二进制文件。

要和 VSCode 配合使用:可以随意打开一个 Go 语言工程,在主页面左下角的 Go 版本号处点击,在弹出的菜单中选择 Choose Go Environment 即可。

参考资料