golang多版本管理器
g是一个 Linux 、macOS、Windows下的命令行工具,可以提供一个便捷的多版本go环境的管理和切换。
特性
- 支持列出可供安装的go版本号
- 支持列出已安装的go版本号
- 支持在本地安装多个go版本
- 支持卸载已安装的go版本
- 支持在已安装的go版本之间自由切换
安装
自动化安装
- Linux/macOS(适用于bash、 zsh )
# 建议安装前清空`GOROOT`、`GO bin `等 环境变量 $ wget -qO- git hubusercontent.com/voidint/g/master/install.sh | bash $ echo "unalias g" >> ~/.bashrc # 可选。若其他程序(如'git')使用了'g'作为别名。 $ source ~/.bashrc # 或者 source ~/.zshrc 复制代码
手动安装
- 下载对应平台的二进制压缩包。
- 将压缩包解压至PATH环境变量目录下,如/usr/local/bin。
- 编辑 shell 环境配置文件(~/.bashrc、~/.zshrc…)
$ cat>>~/.bashrc<< EOF
export GOROOT="${HOME}/.g/go"
export PATH="${HOME}/.g/go/bin:$PATH"
export G_MIRROR=
EOF
复制代码
使用
查询当前可供安装的stable状态的go版本
$ g ls-remote stable 1.11.9 1.12.4 复制代码
安装目标go版本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 复制代码
安装目标go版本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_MIRROR有什么作用?
- 由于中国大陆无法自由访问Golang官网,导致查询及下载go版本都变得困难,因此可以通过该环境变量指定一个镜像站点(如),g将从该站点查询、下载可用的go版本。
- 支持源代码编译安装吗?
- 不支持
鸣谢
感谢nvm、n、rvm等工具提供的宝贵思路。K码农提供了很多不同领域技术,包含人工智能,android,ios ,前端,后端,大数据,云计算,区块链,物联网等大量的技术: