工作中做 go 开发的时候,经常会遇到本地比打包机的 go 版本新的情况,而有些特性或者功能又只包含在新版本当中,导致时有打包失败的情况发生。比如,经常会出现的一个问题就是 ioutil 这个包在 1.16 之后已经被废弃了,其中的一些方法也转移到了其他的包中,我脑海中一直有这个印象,所以就下意识地避免使用 ioutil 这个包,但是因为打包机使用的是 1.15 版本,所以我下意识的避免反而造成了打包失败。在这种情况下,最好的方式就是将本地项目的开发环境切换到 1.15。好在官方1也提供了安装多版本的方式

首先本地需要先安装好一个版本的 go,最好是最新的版本。安装完成之后将 GOPROXY 配置为国内的代理,加速之后的下载速度。我常用的配置

1
go env -w GOPROXY=https://goproxy.cn

接着安装 go1.15

1
2
3
go install golang.org/dl/go1.15@latest

go1.15 download

安装完成之后可以通过下面的命令测试一下是否安装成功

1
~/go/bin/go1.15 version

为了方便起见,你可以给 go1.15 的可执行文件起个别名,或者将 ~/go/bin 添加到环境 PATH 当中,可以简化需要输入的命令

go 默认会把其他版本的源码放置在 ~/sdk/ 下,所以上面下载的 1.15 版本的 GOROOT 就是 ~/sdk/go1.15

你可以通过 go1.15 env 查看 1.15 版本对应的环境变量

如果你想卸载 go1.15,只需要从 $GOPATH/bin 把 go1.15 删掉,然后把 $HOME/sdk/go1.15 删掉即可