Go环境管理工具-goup-rs
下载连接https://github.com/thinkgos/goup-rs/releases
-
将
goup可执行文件放到PATH中, 并给予可执行权限:mv GOUP_BIN /usr/local/bin/ && chmod +x /usr/local/bin/goup -
运行
goup init, 获取到shell启动脚本位于$HOME/.goup/env. -
在shell启动脚本中添加Go的bin目录:
- bash:
echo '. "$HOME/.goup/env"' >> ~/.bashrc - zsh:
echo '. "$HOME/.goup/env"' >> ~/.zshenv - fish:
echo 'source ~/.goup/env' >> ~/.config/fish/config.fish
快速入门
$ goup install [2024-01-30T00:38:48Z INFO ] Installing go1.21.10 ... [2024-01-30T00:38:48Z INFO ] Unpacking /home/thinkgo/.goup/go1.21.10/go1.21.10.linux-amd64.tar.gz ... [2024-01-30T00:38:48Z INFO ] go1.21.10 installed in /home/thinkgo/.goup/go1.21.10 [2024-01-30T00:38:48Z INFO ] Default Go is set to 'go1.21.10' $ goup list 1.21.10 (active, default) $ go env GOROOT /home/thinkgo/.goup/current $ go version go version go1.21.10 linux/amd64 $ GOUP_GO_REGISTRY_INDEX=https://golang.google.cn goup install =1.21.10使用方法
列出所有可用的go版本
goup search [FILTER],[FILTER]支持的值: 'stable',** 'unstable'**, 'beta' 或 any regex string.$ goup search 1 ... 1.21rc4 1.22rc1 $ goup search stable 1 ... 1.21.4 1.21.5 1.21.10列出所有位于
$HOME/.goup已安装的Go版本$ goup list 1.21.10 1.22.3 (active, default) tip安装指定Go版本
goup install/update [TOOLCHAIN],[TOOLCHAIN]支持的值: 'stable'(default),** 'nightly'('tip', 'gotip'), 'unstable'**, 'beta' 或 '=1.21.4',--dry表示只安装对应版本, 但并不切换使用.[TOOLCHAIN]支持semver语法匹配对应版本, 详情查看FAQ$ goup install 1.21.* [2024-01-30T00:38:48Z INFO ] Installing go1.21.10 ... [2024-01-30T00:38:48Z INFO ] Unpacking /home/thinkgo/.goup/go1.21.10/go1.21.10.linux-amd64.tar.gz ... [2024-01-30T00:38:48Z INFO ] go1.21.10 installed in /home/thinkgo/.goup/go1.21.10 [2024-01-30T00:38:48Z INFO ] Default Go is set to 'go1.21.10' $ goup install =1.21.4 --dry [2024-01-30T00:38:48Z INFO ] Installing go1.21.4 ... [2024-01-30T00:38:48Z INFO ] Unpacking /home/thinkgo/.goup/go1.21.4/go1.21.4.linux-amd64.tar.gz ... [2024-01-30T00:38:48Z INFO ] go1.21.10 installed in /home/thinkgo/.goup/go1.21.4切换到选定的Go版本
goup default/use/set [VERSION], 设置默认的Go版本.$ goup default ? Select a version › 1.21.5 ❯ 1.21.10 tip [2024-01-30T00:38:48Z INFO ] Default Go is set to 'go1.21.10'删除指定的 Go 版本列表
goup remove/rm [VERSION]...删除指定的 Go 版本列表. 如果没有提供版本, 将提示选择多个已安装的 Go 版本$ goup rm ? Select multiple version › ✔ 1.21.5 ⬚ 1.21.10 ⬚ tip ✔ Select multiple version · 1.21.5在shell会话中使用特定的Go版本
goup shell [VERSION], 在shell会话中使用特定的Go版本, 如果没有提供版本, 将自动检测执行路径下的go.work/go.mod的Go版本(可以使用--skip-autodetect跳过), 仍旧没有的话将提示用户选择一个已安装的Go版本.$ goup shell 1.21.10 ? Select a version › 1.21.5 ❯ 1.21.10 tip $ go version go version go1.21.10 linux/amd64 $ goup list 1.21.10 1.22.3 (active, default) tip管理缓存归档文件
$ goup cache show --contain-sha256 go1.21.10.linux-amd64.tar.gz go1.21.10.linux-amd64.tar.gz.sha256 $ goup cache clean ✔ Do you want to clean cache file? · yes修改
goup安装程序$ goup self update Checking target-arch... x86_64-unknown-linux-gnu Checking current version... v0.9.0 Checking latest released version... v0.9.0 [2024-01-30T00:38:48Z INFO ] Update status: `v0.9.0`!环境变量值
$ goup env +------------------------+--------------------------------+--------------------------------------------------------------+ | Key | Value | Explain | +------------------------+--------------------------------+--------------------------------------------------------------+ | GOUP_HOME | /home/thinkgo/.goup | Get goup home directory, default: '$HOME/.goup' | | GOUP_GO_VERSION | current | Shell session target go version, default: 'current' | | GOUP_GO_REGISTRY_INDEX | https://golang.google.cn | Registry index of go version | | GOUP_GO_REGISTRY | https://dl.google.com/go | Registry of go archive file | | GOUP_GO_SOURCE_GIT_URL | https://github.com/golang/go | Source git url, use by tip|nightly or index of go version | | GOUP_GO_SOURCE_GIT_URL | https://go.googlesource.com/go | Source upstream git url, use by tip|nightly | +------------------------+--------------------------------+--------------------------------------------------------------+Shell补全
goup completion <SHELL>为指定shell生成补全脚本.<SHELL>支持这些值:bash,elvish,fish,powershell,zsh.goup completion zsh > _goup更多信息
执行
goup -h获取更多信息镜像站
索引镜像站
索引 地址 使用选项 --registry-index或环境变量备注 官方1(默认) https://go.dev official或official|https://go.dev官方2 https://golang.google.cn official|https://golang.google.cn官方git 1 https://github.com/golang/go git或git|https://github.com/golang/go通过git 官方git 2 https://go.googlesource.com/go git|https://go.googlesource.com/go通过git 阿里云 https://mirrors.aliyun.com/golang ngx-fancy-index|https://mirrors.aliyun.com/golang南京大学 https://mirrors.nju.edu.cn/golang ngx-fancy-index|https://mirrors.nju.edu.cn/golang华中科技大学 https://mirrors.hust.edu.cn/golang ngx-fancy-index|https://mirrors.hust.edu.cn/golang仓库镜像站
仓库 地址 支持SHA256文件 支持HTTP获取压缩包长度 备注 官方1(默认) https://dl.google.com/go ✅ ✅ 官方2 https://go.dev/dl ❌ ✅ 官方3 https://golang.org/dl ❌ ✅ 阿里云 https://mirrors.aliyun.com/golang ❌ ❌ 南京大学 https://mirrors.nju.edu.cn/golang ✅ ✅ 华中科技大学 https://mirrors.hust.edu.cn/golang ✅ ✅ 中国科学技术大学 https://mirrors.ustc.edu.cn/golang ✅ ✅ ❌ 不建议使用 NOTE: 有些镜像站不提供SHA256校验文件, 在下载时需要使用
--skip-verify选项.设置镜像站环境变量
# 推存值 export GOPROXY=https://mirrors.aliyun.com/goproxy/ export GOUP_GO_REGISTRY_INDEX='ngx-fancy-index|https://mirrors.aliyun.com/golang' export GOUP_GO_REGISTRY=https://mirrors.aliyun.com/golang # 使用goup install 时需添加--skip-verify参数工作原理
goup completion <SHELL>为指定shell生成补全脚本.goup [help]打印此信息或给定子命令的帮助信息.goup install/update/i [TOOLCHAIN]下载指定的Go版本到$HOME/.goup/go<VERSION|tip>/go并创建一个软链接到$HOME/.goup/current.goup default/use/set [VERSION]设置默认的Go版本.goup ls/list/show列出所有位置$HOME/.goup已安装的Go版本.goup remove/rm [VERSION]...移除指定的Go版本列表.goup search/ls-remote [FILTER]列出所有可用的Go版本.goup cache [COMMAND]管理缓存归档文件.goup self <COMMAND>修改goup安装程序.goup init [SHELL]将所有必要的环境变量和值写入$HOME/.goup/env.goup env显示goup的环境变量和值.goup shell [VERSION]在shell会话中使用特定的Go版本.
- bash: