g是一个Linux、macOS、Windows下的命令行工具,可以提供一个便捷的多版本go环境的管理和切换。

特性

  • 支持列出可供安装的go版本号
  • 支持列出已安装的go版本号
  • 支持在本地安装多个go版本
  • 支持卸载已安装的go版本
  • 支持在已安装的go版本之间自由切换

安装

自动化安装

# 建议安装前清空`GOROOT`、`GOBIN`等环境变量
$ wget -qO- https://raw.githubusercontent.com/voidint/g/master/install.sh | bash
$ echo "unalias g" >> ~/.bashrc # 可选。若其他程序(如'git')使用了'g'作为别名。
$ source ~/.bashrc # 或者 source ~/.zshrc

手动安装

$ cat>>~/.bashrc<<EOF
export GOROOT="${HOME}/.g/go"
export PATH="${HOME}/.g/go/bin:$PATH"
export G_MIRROR=https://golang.google.cn/dl/
EOF

使用

stable
$ g ls-remote stable
1.11.9
1.12.4
1.12.4
$ g install 1.12.4
Installed successfully
$ go version
go version go1.12.4 darwin/amd64

查询已安装的go版本

$ g ls
1.12.4

查询可供安装的所有go版本

$ g ls-remote
1
1.2.2
1.3
1.3.1
...    // 省略若干版本
1.11.7
1.11.8
1.11.9
1.12
1.12.1
1.12.2
1.12.3
1.12.4
1.11.9
$ g install 1.11.9
Installed successfully
$ go version
go version go1.11.9 darwin/amd64

切换到另一个已安装的go版本

$ g ls
1.11.9
1.12.4
$ g use 1.12.4
go version go1.12.4 darwin/amd64

卸载一个已安装的go版本

g uninstall 1.11.9
Uninstall successfully

FAQ

G_MIRRORhttps://golang.google.cn/dl/

鸣谢

感谢nvm、n、rvm等工具提供的宝贵思路。