G

G


推荐使用

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

特性 #

  • 支持列出可供安装的 go 版本号
  • 支持列出已安装的 go 版本号
  • 支持在本地安装多个 go 版本
  • 支持卸载已安装的 go 版本
  • 支持在已安装的 go 版本之间自由切换
  • 支持清空安装包文件缓存
  • 支持软件自我更新(>= 1.5.0)
  • 支持软件绿色卸载(>= 1.5.0)

安装 #

自动化安装 #

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

手动安装 #

  • 创建 g 家目录(推荐~/.g目录)

  • 下载 release的二进制压缩包,并解压至 g 家目录下的 bin 子目录中(即~/.g/bin目录)。

  • 将所需的环境变量写入~/.g/env文件

    $ cat >~/.g/env <<'EOF'
    #!/bin/sh
    # g shell setup
    export GOROOT="${HOME}/.g/go"
    export PATH="${HOME}/.g/bin:${GOROOT}/bin:$PATH"
    export G_MIRROR=https://golang.google.cn/dl/
    EOF
    
  • ~/.g/env导入到 shell 环境配置文件(如~/.bashrc~/.zshrc…)

    $ cat >>~/.bashrc <<'EOF'
    # g shell setup
    if [ -f "${HOME}/.g/env" ]; then
        . "${HOME}/.g/env"
    fi
    EOF
    
  • 启用环境变量

    source ~/.bashrc # 或source ~/.zshrc
    
  • 创建目录mkdir ~/.g/bin

  • 下载 release的 windows 版本的二进制压缩包, 解压之后放到~/.g/bin目录下

  • 默认二进制文件名是 g.exe, 如果你已经用 g 这个命令已经用作为 git 的缩写,那么你可以把 g.exe 改为其他名字,如 gvm.exe

  • 执行命令code $PROFILE, 这个命令会用 vscode 打开默认的 powershell 配置文件

  • 在 powershell 的默认配置文件中加入如下内容

    $env:GOROOT="$HOME\.g\go"
    $env:Path=-join("$HOME\.g\bin;", "$env:GOROOT\bin;", "$env:Path")
    
  • 再次打开 powershell 终端,就可以使用 g 或者 gvm 命令了

使用 #

查询当前可供安装的stable状态的 go 版本

$ g ls-remote stable
  1.19.10
  1.20.5

安装目标 go 版本1.20.5

$ g install 1.14.7
Downloading 100% [===============] (92/92 MB, 12 MB/s)               
Computing checksum with SHA256
Checksums matched
Now using go1.20.5

查询已安装的 go 版本

$ g ls
  1.19.10
* 1.20.5

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

$ g ls-remote
  1
  1.2.2
  1.3
  1.3.1
  ...    // 省略若干版本
  1.19.10
  1.20rc1
  1.20rc2
  1.20rc3
  1.20
  1.20.1
  1.20.2
  1.20.3
  1.20.4
* 1.20.5

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

$ g use 1.19.10
go version go1.19.10 darwin/arm64

卸载一个已安装的 go 版本

$ g uninstall 1.19.10
Uninstalled go1.19.10

清空 go 安装包文件缓存

$ g clean 
Remove go1.18.10.darwin-arm64.tar.gz
Remove go1.19.10.darwin-arm64.tar.gz
Remove go1.20.5.darwin-arm64.tar.gz

查看 g 版本信息

g version 1.5.0
build: 2023-01-01T21:01:52+08:00
branch: master
commit: cec84a3f4f927adb05018731a6f60063fd2fa216

更新 g 软件本身

$ g self update
You are up to date! g v1.5.0 is the latest version.

卸载 g 软件本身

$ g self uninstall
Are you sure you want to uninstall g? (Y/n)
y
Remove /Users/voidint/.g/bin/g
Remove /Users/voidint/.g