Go语言多版本管理实践指南
发表时间: 2024-07-12 18:30
g是一个 Linux、macOS、Windows 下的命令行工具,可以提供一个便捷的多版本 go 环境的管理和切换。
Linux/macOS(适用于 bash、zsh)
# 建议安装前清空`GOROOT`、`GOBIN`等环境变量$ curl -sSL https://raw.githubusercontent.com/voidint/g/master/install.sh | bash$ echo "unalias g" >> ~/.bashrc # 可选。若其他程序(如'git')使用了'g'作为别名。$ source "$HOME/.g/env"
Windows(适用于 pwsh)
自动化安装
$ cat >~/.g/env <<'EOF'#!/bin/sh# g shell setupexport GOROOT="${HOME}/.g/go"export PATH="${HOME}/.g/bin:${GOROOT}/bin:$PATH"export G_MIRROR=https://golang.google.cn/dl/EOF
$ cat >>~/.bashrc <<'EOF'# g shell setupif [ -f "${HOME}/.g/env" ]; then . "${HOME}/.g/env"fiEOF
$ source ~/.bashrc # 或source ~/.zshrc
$env:GOROOT="$HOME\.g\go"$env:Path=-join("$HOME\.g\bin;", "$env:GOROOT\bin;", "$env:Path")
查询当前可供安装的stable状态的 go 版本
$ g ls-remote stable 1.19.10 1.20.5
安装目标 go 版本1.20.5
$ g install 1.14.7Downloading 100% [===============] (92/92 MB, 12 MB/s) Computing checksum with SHA256Checksums matchedNow 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.10go version go1.19.10 darwin/arm64
卸载一个已安装的 go 版本
$ g uninstall 1.19.10Uninstalled go1.19.10
清空 go 安装包文件缓存
$ g clean Remove go1.18.10.darwin-arm64.tar.gzRemove go1.19.10.darwin-arm64.tar.gzRemove go1.20.5.darwin-arm64.tar.gz
查看 g 版本信息
g version 1.5.0build: 2023-01-01T21:01:52+08:00branch: mastercommit: cec84a3f4f927adb05018731a6f60063fd2fa216
更新 g 软件本身
$ g self updateYou are up to date! g v1.5.0 is the latest version.
卸载 g 软件本身
$ g self uninstallAre you sure you want to uninstall g? (Y/n)yRemove /Users/voidint/.g/bin/gRemove /Users/voidint/.g
GitHub - voidint/g: Golang Version Manager