1 概述
我们经常维护多个项目,而每个项目用的go版本可能不一样,这样在本地调试时,就需要依赖多个版本,同时我们也需要一个方法来在这些版本中进行切换。
2 安装
2.1 获取GOROOT
假设你本地已经安装了某个版本,比如说 1.20,此时:
echo $GOROOT
输出
/Users/someone/go/go1.20
把这个记住。
2.2 安装新版本
从go语言中文网下载相关安装包,这里以Mac为例,我要安装的是 1.22.7 版本:
wget https://studygolang.com/dl/golang/go1.22.7.darwin-amd64.tar.gz
解压
tar -zxvf go1.22.7.darwin-amd64.tar.gz
会在本地产生一个 go 目录。 将其放置在 $GOROOT 目录下:
mv go /Users/someone/go/go1.22.7
此时,$GOROOT目录下就有 go1.20 和 go1.22.7 两个版本目录了。
3 设置
将$GOROOT设置成go需要执行的公共路径,然后通过软链接将对应版本的go指向这个公共路径。
3.1 编辑环境变量
随便选择一个公共文件名称,比如goroot,然后编辑环境变量文件,我这里是编辑的 ~/.bash_profile 文件
vi ~/.bash_profile
#添加以下内容
export GOROOT=/Users/someone/go/goroot
export PATH=$GOROOT/bin:$PATH
保存退出,通过source命令让其生效。
source ~/.bash_profile
3.2 链接
通过软链接命令,将某个版本的文件软链接到某个公共文件上:
ln -s /Users/someone/go/go1.20 /Users/someone/go/goroot
#此时/Users/someone/go/ 目录下将生成 goroot 文件
go version
输出
go version go1.20 darwin/arm64
3.3 切换
rm /Users/someone/go/goroot
ln -s /Users/someone/go/go1.22.7 /Users/someone/go/goroot
go version
#输出
go version go1.22.7 darwin/amd64
至此,我们就通过一个公共文件软链接的方式达到了切换版本的目的。