在日常开发工作过程中,很多时候我们都需要在自己的机器上安装多个go版本,像是go1.16引入的embed,go1.18引入了泛型;又或是自己本地使用的是最新版,但公司的项目中使用的go1.14、go1.13甚至是更早的版本。
那么有没有既不影响我们自己的本地环境,又能兼顾历史项目的办法呢?答案当然是肯定的:有!!!我这里介绍下官方的方案。
以我本地的环境为例,我使用的是go1.20.4,项目中使用的是go1.17,具体操作如下:
# 查看本地本部
$ go version
go version go1.20.4 linux/amd64
# 安装指定的发行版本
$ go install golang.org/dl/go1.17.12@latest
go: downloading golang.org/dl v0.0.0-20230502172222-5216546bad51
$ go1.17.12 download
Downloaded 0.0% ( 16384 / 135035038 bytes) ...
Downloaded 0.8% ( 1032192 / 135035038 bytes) ...
Downloaded 2.5% ( 3375088 / 135035038 bytes) ...
......
Downloaded 98.0% (132284400 / 135035038 bytes) ...
Downloaded 99.6% (134561792 / 135035038 bytes) ...
Downloaded 100.0% (135035038 / 135035038 bytes)
Unpacking /root/sdk/go1.17.12/go1.17.12.linux-amd64.tar.gz ...
Success. You may now run 'go1.17.12'
# 验证
$ go1.17.12 version
go version go1.17.12 linux/amd64
至此,多版本的go环境就已经安装完成了,使用的时候只需要指定相应的go版本即可:
# 使用go1.20
$ go build
# 使用go1.17
$ go1.17.12 build