工具盒子 Logo
🏘首页
📦归档
🏷标签
🧰关于
登录 →
工具盒子 Logo
🏘首页 📦归档 🏷标签 🧰关于
登录
  1. 首页
  2. Go环境管理工具-goup-rs

Go环境管理工具-goup-rs

  • 发布于 2026-01-06
  • 0 次阅读
Administrator
Administrator

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版本.
目录
  • 工具盒子公众号
Copyright © 2025 toolhz.cn All Rights Reserved
粤ICP备2025427282号
gongan beian 粤公网安备44030002008642号