开源XVM: 用rust写了一个跨平台&通用的多版本管理工具 - 支持(自定义)命令别名、多版本共存/管理、工作空间/环境隔离

31 阅读1分钟

基本介绍

一个简单且通用的版本管理工具。 可以注册目标工具版本到 xvm 数据库, 也可搭配 xim 包管理器(自动安装注册)进行使用。目前还处于前期版本阶段欢迎交流讨论...

多版本切换及工作空间命令演示

利用工作空间机制, 支持自动版本切换(以node为例)

speak@speak-pc:~/test/xvm$ node --version
v22.12.0
speak@speak-pc:~/test/xvm$ xvm list node # 查看所有版本
23.6.0
22.12.0

speak@speak-pc:~/test/xvm$ xvm use node 23.6.0 # 切换到 23.6.0
using -> target: node, version: 23.6.0
speak@speak-pc:~/test/xvm$ node --version # 验证版本
v23.6.0
speak@speak-pc:~/test/xvm$ xvm current node # 显示版本信息(xvm 下有个 test 工作空间配置)

	[[test + global]]

node:	23.6.0
nodejs:	23.6.0	 -->  [node]

all targets added

speak@speak-pc:~/test/xvm$ cd .. # 返回上级目录(自动切换到全局空间)
speak@speak-pc:~/test$ node --version # node 版本已经变成了 22
v22.12.0
speak@speak-pc:~/test$ xvm current node # 查看当前版本情况

	[[global]]

node:	22.12.0
nodejs:	23.6.0	 -->  [node]

all targets added

speak@speak-pc:~/test$ cd xvm # 再次进入 xvm 目录(node 会自动变成 test 工作空间的版本
speak@speak-pc:~/test/xvm$ node --version
v23.6.0
speak@speak-pc:~/test/xvm$ 

三种使用模式

1-全局模式

  • 全局工作空间
  • 支持使用注册/移除不同版本
  • 支持版本切换/及别名设置
  • 支持一键关闭或开启 xvm 对宿主系统的影响

2-local 模式

  • 基于目录的工作空间
  • 工作空间继承控制(不继承及和全局版本进行隔离)
  • 工作空间激活状态控制
  • 工作空间配置可以编辑(一般用于项目控制版本)
  • 记录使用版本并导出工作空间配置文件

3-自定义工作空间 - (计划开发中)

  • 自定义工作空间且目录无关 (一般用于特定版本配置组合记录)
  • 其他功能类似 local

开源地址