版本切换
linux
安装
# 建议安装前清空`GOROOT`、`GOBIN`等环境变量
$ curl -sSL https://raw.githubusercontent.com/voidint/g/master/install.sh | bash
$ echo "unalias g" >> ~/.bashrc # 可选。若其他程序(如'git')使用了'g'作为别名。
$ source ~/.bashrc # 或者 source ~/.zshrc
查询当前可供安装的stable
状态的go版本
$ g ls-remote stable
1.13.15
1.14.7
安装目标go版本1.14.7
$ g install 1.14.7
Downloading 100% |███████████████| (119/119 MB, 9.939 MB/s) [12s:0s]
Computing checksum with SHA256
Checksums matched
Now using go1.14.7
查询已安装的go版本
$ g ls
1.7.6
1.11.13
1.12.17
1.13.15
1.14.6
* 1.14.7
查询可供安装的所有go版本
$ g ls-remote
1
1.2.2
1.3
1.3.1
... // 省略若干版本
1.14.5
1.14.6
* 1.14.7
1.15rc1
切换到另一个已安装的go版本
$ g use 1.14.6
go version go1.14.6 darwin/amd64
卸载一个已安装的go版本
$ g uninstall 1.14.7
Uninstalled go1.14.7
mac os
安装
brew install go@1.12
brew install go@1.13
mkdir /usr/local/Cellar/go //新建go文件夹
mv /usr/local/Cellar/go@1.12/1.12.17 /usr/local/Cellar/go/1.12.17
mv /usr/local/Cellar/go@1.12/1.13.12 /usr/local/Cellar/go/1.13.12 //将两个版本的go复制到Cellar/go文件中
切换
brew switch go 1.12.17
go get失败
# go version 1.12
go list -m -json all
go: go.etcd.io/etcd@v3.3.18+incompatible: unrecognized import path "go.etcd.io/etcd" (https fetch: Get https://go.etcd.io/etcd?go-get=1: net/http: TLS handshake timeout)
go: error loading module requirements
解决办法:
- 将go版本切为 1.13
brew switch go 1.13
- 配置goproxy
go env -w GOPROXY=https://goproxy.cn,direct
。如果配置失败warning: go env -w GOPROXY=... does not override conflicting OS environment variable
,尝试unset GOPROXY
后再重新配置 - 重新执行
go list -m -json all