V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Sunrisepeak
V2EX  ›  分享创造

开源 XVM: 用 rust 写了一个跨平台&通用的多版本管理工具 - 支持(自定义)命令别名、多版本共存/管理、工作空间/环境隔离 (适配所有安装来源) - 前期阶段欢迎交流讨论

  •  
  •   Sunrisepeak ·
    Sunrisepeak · 17 小时 32 分钟前 · 415 次点击

    基本介绍

    一个简单且通用的版本管理工具。 可以注册目标工具版本到 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

    开源地址

    2 条回复    2025-01-17 22:21:57 +08:00
    Sunrisepeak
        1
    Sunrisepeak  
    OP
       17 小时 19 分钟前
    目前还是初步的版本。欢迎大家尝试, 或给出一些开发/改进方向上的建议...
    ITisCool
        2
    ITisCool  
       14 小时 38 分钟前
    就先照 asdf 包含完它的所有功能好了。不过 asdf 最近也用 golang 重写了,用 rust 写一个性能应该也不会占太大优势。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2640 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 05:00 · PVG 13:00 · LAX 21:00 · JFK 00:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.