
vmr (Version Manager) 迎来重要更新。作为一款专为现代开发者设计的轻量级工具, vmr 致力于解决开发者在同一台机器上管理多套开发工具(如 Go、Node.js、Python、JDK、Rust、Lua 等)版本的痛点,实现“一条命令装、切、卸”,无需管理员权限,绝不污染系统目录。
:star2: 核心亮点
- 智能上下文感知,开发体验无缝衔接
- 项目级锁定:在项目根目录执行锁定后,每次
cd进入该目录会自动切换到指定版本,离开后自动还原。生成的.vmr.lock文件可提交至仓库,确保团队成员环境绝对对齐。 - 会话隔离:支持临时开启子 shell 测试新版本(
vmr use -s),退出即自动恢复全局设置,完美契合“只想在当前终端试一下”的轻量级场景。
- 项目级锁定:在项目根目录执行锁定后,每次
- Rust重构,体积更小,速度更快
- 突破边界的扩展能力与极致性能
- 内置 conda-forge 支持:不仅管理常规 SDK,更内置
pixi安装能力,可直接安装任意conda-forge包,无需预装臃肿的 conda/miniconda。 - 高速下载与灵活网络配置:原生支持多线程下载、文件校验和,并完美兼容反向代理、本地代理与
HTTP(S)_PROXY,大幅提升复杂网络环境下的安装成功率与速度。 - 一键迁移:通过
vmr freeze导出纯文本版本清单,在新机器上通过vmr use -f即可一键批量还原,环境配置从未如此简单。
- 内置 conda-forge 支持:不仅管理常规 SDK,更内置
:vs: 为什么选择 vmr?(对比主流工具)
- 对比
nvm:nvm仅专注于 Node.js 生态;而vmr是真正的全栈多语言管理器,且提供了更现代的项目级自动切换与会话隔离体验。 - 对比
asdf:asdf高度依赖社区插件且单线程下载速度常受诟病;vmr原生提供多线程下载与完善的代理配置,且项目级锁定机制开箱即用,无需复杂配置。 - 对比
vfox:在同样优秀的跨平台多语言支持基础上,vmr不仅拥有插件系统,还内置了conda-forge包管理能力,打破了传统 SDK 管理器的边界,生态扩展性更强,真正做到了“一个工具管理所有开发依赖”。
:rocket: 快速体验
# 查看支持的 SDK 插件
vmr plugins
# 搜索并安装指定版本
vmr search go
vmr use go@1.22.0
# 为当前项目锁定版本(自动生成 .vmr.lock)
vmr use -l node@20.11.0
# 临时开启会话测试新版本
vmr use -s python@3.12.2
# 导出/迁移环境
vmr freeze > vmr_list.txt
vmr use -f vmr_list.txt
支持平台 :Linux / macOS / Windows (全面支持 x86_64 与 aarch64 预编译包)
项目地址 :https://github.com/gvcgo/version-manager
中文文档 :https://github.com/gvcgo/version-manager/blob/main/README_CN.md
欢迎 Star 关注、提交 Issue 或参与贡献,一起打造更优雅、高效的开发者环境管理体验!