#版本管理器 #SDK #预编译 #多平台 #二进制文件 #切换 #Go

app goup

A simple version manager for Go written in Rust! 🚀

7个稳定版本

1.7.0 2024年7月19日
1.6.0 2024年7月6日
1.5.0 2024年3月5日
1.3.0 2023年7月26日
1.2.0 2023年5月6日

#133 in 开发工具

Download history 138/week @ 2024-07-05 13/week @ 2024-07-12 122/week @ 2024-07-19 4/week @ 2024-07-26 1/week @ 2024-08-02

127 monthly downloads

MIT许可

1.5MB
1.5K SLoC

🚀 goup

类似于 rustupnvm 的简单Go版本管理器。

功能

  • 安装、管理和切换Go SDK的不同版本。
  • 多shell兼容(Bash、Zsh、Nushell、PowerShell)
  • 多平台兼容(Linux、macOS & Windows)。
  • 力求尽可能简单且不干扰。
  • 应该相当快速。
  • 使用预编译的二进制文件而不是本地编译源代码。

安装

只需从发布页面下载最新二进制文件。

或者,您也可以使用cargo安装goup。

cargo install goup

如果您想从master分支获取最新未发布版本,请使用以下命令。

cargo install --git https://github.com/zekroTJA/goup

之后,运行以下命令设置环境,以便使用goup处理Go版本。

goup env -p
source ~/.profile

这将向您的.profile文件添加所需的环境变量和$PATH扩展。

或者,如果您只想试用此工具,也可以将环境应用到当前的终端会话中。

eval "$(goup env)"

它是如何工作的?

goup 使用 GitHub 上的 Go 仓库,通过命令 git ls-remote --tags 查询可用的版本(计划添加回退机制,当当前系统上没有 git 时使用 GitHub API)。 然后使用此版本列表从官方下载服务器 (https://golang.ac.cn/dl/) 下载选定的版本。下载的 SDKs 在下载过程中将被直接解压缩到 goup 的工作空间目录,该目录位于当前用户主目录的 $HOME/.local/goup。所有下载的 SDK 版本都存储在 $HOME/.local/goup/installations。选择特定安装版本时,安装目录中的位置将被符号链接到 $HOME/.local/goup/current,所选版本将存储在文件 $HOME/.local/goup/.current_version 中。

使用命令 goup env -p,这将设置 $HOME/.local/goup/current/go 的路径为你的 GOROOT 环境变量,并将 $HOME/.local/goup/current/go/bin 添加到你的 $PATH 的开头。这样,goup 不会影响你的本地 Go 安装,你只需删除 .profile 中的 goup 条目并删除 $HOME/.local/goup 目录,就可以简单地回滚到之前的状态。

鸣谢

这个工具非常受以下两个优秀工具的启发: Schnitz' fnmRust 的 rustup


© 2023 Ringo Hoffmann。
MIT 许可证 保护。

依赖

~11–28MB
~409K SLoC