如何灵活且优雅管理Golang多版本呢?

Github: github.com/version-fox...

本文主要是介绍一下管理Golang多版本的新方式, 一个全新的工具VersionFox.

背景介绍

日常生活中最最常见的问题, 公司项目使用的1.18.1 版本, 而我个人项目想使用最新的1.21.6, 怎么办呢?

在我没开发这个工具之前是这样的:

这对于强迫症患者来说, 一眼看上去就很难受对不对!! 另外每当我需要添加新版本切换版本 的时候, 就需要修改.zshrc文件, 反反复复的注释和添加环境变量.

另外, 你们也可以看到, 我还涉及到其他的语言和工具! 这个过程更xx的痛苦!

于是乎, 手撸一个更通用的版本管理工具VersionFox(我知道有一些现成的工具可以使用,但是吧哈哈哈, 继续往下看就知道咯).

什么是VersionFox?

简单来说, 跨平台通用可拓展的SDK版本管理器~

  • 跨平台 (Windows、Linux、macOS), 不同的平台拥有相同的用户体验
  • 使用一致的命令管理所有语言
  • 简单的插件系统添加对您所需 SDK 的支持
  • 支持 GlobalProjectSession 三种作用域 (敲重点!!)
  • 当您切换项目时,自动切换到对应版本

快速开始

1.安装vfox

VersionFox 支持多个平台(Windows、Linux、macOS),为了演示, 我们使用Homebrew来快速安装. (详细安装请看 Installation)

shell 复制代码
$ brew tap version-fox/tap
$ brew install vfox

VersionFox 挂载到你的Shell当中 (从下面条目中选择一条适合你shell的)

bash 复制代码
echo 'eval "$(vfox activate bash)"' >> ~/.bashrc
echo 'eval "$(vfox activate zsh)"' >> ~/.zshrc
echo 'vfox activate fish | source' >> ~/.config/fish/config.fish

# 对于Powershell用户, 将下面行添加到你的$PROFILE文件中:
Invoke-Expression "$(vfox activate pwsh)"

2.添加Golang插件

安装了VersionFox后,你还做不了任何事情,因为VersionFox使用插件作为扩展,您需要先安装相应的插件。

当然,如果您不知道应该添加哪些插件,可以使用 vfox available 命令检查所有可用插件

shell 复制代码
$ vfox add golang/golang

3. 安装最新版本

命令 : vfox install golang@<version>

在插件成功安装之后, 你就可以安装对应版本的Golang啦. 例如, 我们使用以下命令来安装最新版本:

ruby 复制代码
$ vfox install golang@latest

4. 切换版本

命令 : vfox use golang

在安装成功之后, 你就可以自由切换Golang的版本了. 使用下面的命令选择你想要切换的版本:

go 复制代码
$ vfox use golang
$ go version
go version go1.21.6 darwin/amd64

作用域

有时,我们需要同时处理多个项目。如果所有项目都使用相同的版本,那就没有问题。但实际情况往往并非如此理想!

Session作用域

仅限当前shell会话内有效, shell之间相互隔离, 互不影响

命令 : vfox use -s golang

Project作用域

会在当前目录下创建一个.tool-versions文件, 用来记录当前项目下使用的版本. 作用范围仅限当前目录, 切换目录会自动切换版本

命令 : vfox use -p golang

Global作用域

作用范围全局, 就不讲了, 都有! 😊

命令 : vfox use -p golang

其他命令

Search命令

当前golang/golang插件是通过解析https://go.dev/来获取的版本信息, 与官方版本保持同步, 所以没有任何delay的情况发生哦~

: 那我们怎么知道当前可用的版本 有哪些呢(或者说我就想看前3个最新版本是多少)?

: 通过vfox search golang命令, 可以查看所有可用版本, 支持搜索, 支持分页哦

搜索界面

另外, 为了使用更方便, 在当前搜索页选中目标版本之后, 按下回车即可立即安装, 无须再次执行vfox install命令!

查看已安装版本

命令 : vfox ls golang

卸载指定版本

命令 : vfox uninstall golang@<version>

更多命令,请查看All Commands

结束语

到这, 我想你已经清楚了VersionFox的强大. 😄

另外, 作为一个通用SDK版本管理器, VersionFox不局限于Golang, 目前已支持多个语言或工具, 详细请查看插件仓库

快来体验一下咯~ 欢迎使用和反馈bug, 如果有好的想法也可以提issue哦~

如果您觉得有帮助,请给我们一颗星🌟🌟,以表示您的支持,谢谢 🙏~~

Github: github.com/version-fox...

相关推荐
小高Baby@7 分钟前
Go中常用字段说明
后端·golang·gin
小信丶21 分钟前
@EnableMethodCache 注解详解:原理、应用场景与示例代码
java·spring boot·后端·spring
qq_297574678 小时前
【实战教程】SpringBoot 集成阿里云短信服务实现验证码发送
spring boot·后端·阿里云
韩立学长10 小时前
【开题答辩实录分享】以《智能大学宿舍管理系统的设计与实现》为例进行选题答辩实录分享
数据库·spring boot·后端
编码者卢布12 小时前
【Azure Storage Account】Azure Table Storage 跨区批量迁移方案
后端·python·flask
她说..15 小时前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
梦梦代码精16 小时前
开源、免费、可商用:BuildingAI一站式体验报告
开发语言·前端·数据结构·人工智能·后端·开源·知识图谱
程序设计实验室17 小时前
2025年的最后一天,分享我使用go语言开发的电子书转换工具网站
go
李慕婉学姐17 小时前
【开题答辩过程】以《基于Spring Boot的疗养院理疗管理系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·spring boot·后端
我的golang之路果然有问题17 小时前
使用 Hugo + GitHub Pages + PaperMod 主题 + Obsidian 搭建开发博客
golang·go·github·博客·个人开发·个人博客·hugo