golang多版本管理器

32次阅读

共计 1198 个字符,预计需要花费 3 分钟才能阅读完成。

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

特性

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

安装

自动化安装

  • Linux/macOS(适用于 bash、zsh)

    # 建议安装前清空 `GOROOT`、`GOBIN` 等环境变量
    $ wget -qO- https://raw.githubusercontent.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=https://golang.google.cn/dl/
    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 版本都变得困难,因此可以通过该环境变量指定一个镜像站点(如https://golang.google.cn/dl/),g 将从该站点查询、下载可用的 go 版本。

  • 支持源代码编译安装吗?

    不支持

鸣谢

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

正文完
 0