Appearance
vfox - 跨平台版本管理工具 
vfox 是一个现代化的跨平台版本管理工具,用于管理多种编程语言和工具的版本。它提供了统一的接口来安装、切换和管理不同版本的开发工具。
概述 
vfox 是 VersionFox 的简称,是一个用 Go 语言编写的版本管理器,旨在替代传统的版本管理工具如 nvm、pyenv、rbenv 等。它具有以下特点:
- 跨平台支持:支持 Windows、macOS 和 Linux
- 统一接口:一个工具管理多种语言版本
- 插件系统:通过插件支持各种编程语言和工具
- 性能优异:Go 语言编写,启动速度快
- 配置简单:最小化配置,开箱即用
安装 
自动安装脚本 
Unix/Linux/macOS:
bash
curl -sSL https://raw.githubusercontent.com/version-fox/vfox/main/install.sh | bashWindows (PowerShell):
powershell
iwr -useb https://raw.githubusercontent.com/version-fox/vfox/main/install.ps1 | iex手动安装 
- 从 GitHub Releases 下载对应平台的二进制文件
- 解压并将可执行文件放到 PATH 环境变量中
- 重启终端或重新加载 shell 配置
包管理器安装 
Homebrew (macOS/Linux):
bash
brew install vfoxScoop (Windows):
powershell
scoop install vfox基本使用 
初始化 
首次使用需要初始化 vfox:
bash
vfox setup这会在你的 shell 配置文件中添加必要的环境变量和函数。
插件管理 
vfox 通过插件系统支持不同的编程语言和工具。
添加插件 
bash
# 添加 Node.js 插件
vfox add nodejs
# 添加 Python 插件
vfox add python
# 添加 Java 插件
vfox add java
# 添加 Go 插件
vfox add golang查看已安装插件 
bash
vfox list移除插件 
bash
vfox remove nodejs版本管理 
安装版本 
bash
# 安装最新版本
vfox install nodejs@latest
# 安装指定版本
vfox install nodejs@18.17.0
vfox install python@3.11.4
vfox install java@17.0.7
# 安装多个版本
vfox install nodejs@16.20.1 nodejs@18.17.0 nodejs@20.5.0查看可用版本 
bash
# 查看远程可用版本
vfox search nodejs
vfox search python
# 查看已安装版本
vfox list nodejs
vfox list python切换版本 
bash
# 全局切换
vfox use nodejs@18.17.0
vfox use python@3.11.4
# 项目级切换(在项目目录下)
vfox use nodejs@16.20.1 --project
vfox use python@3.9.17 --project
# 会话级切换(仅当前终端会话)
vfox use nodejs@20.5.0 --session卸载版本 
bash
vfox uninstall nodejs@16.20.1
vfox uninstall python@3.9.17高级功能 
项目配置文件 
vfox 支持项目级别的版本配置,通过 .vfox.yaml 文件:
yaml
# .vfox.yaml
versions:
  nodejs: "18.17.0"
  python: "3.11.4"
  java: "17.0.7"当进入包含此文件的目录时,vfox 会自动切换到指定版本。
环境变量管理 
vfox 可以管理与版本相关的环境变量:
bash
# 查看当前环境变量
vfox env
# 查看特定插件的环境变量
vfox env nodejs
# 导出环境变量到当前 shell
eval "$(vfox env)"别名功能 
为常用版本创建别名:
bash
# 创建别名
vfox alias nodejs lts 18.17.0
vfox alias python stable 3.11.4
# 使用别名
vfox use nodejs@lts
vfox use python@stable
# 查看别名
vfox alias list
# 删除别名
vfox alias remove nodejs lts钩子脚本 
vfox 支持在版本切换时执行自定义脚本:
bash
# 在 ~/.vfox/hooks/ 目录下创建钩子脚本
# pre-use.sh - 版本切换前执行
# post-use.sh - 版本切换后执行常用插件 
Node.js 
bash
vfox add nodejs
vfox install nodejs@latest
vfox install nodejs@lts
vfox use nodejs@18.17.0Python 
bash
vfox add python
vfox install python@3.11.4
vfox install python@3.12.0
vfox use python@3.11.4Java 
bash
vfox add java
vfox install java@17.0.7
vfox install java@11.0.19
vfox use java@17.0.7Go 
bash
vfox add golang
vfox install golang@1.21.0
vfox install golang@1.20.7
vfox use golang@1.21.0Ruby 
bash
vfox add ruby
vfox install ruby@3.2.2
vfox install ruby@3.1.4
vfox use ruby@3.2.2配置 
全局配置 
vfox 的全局配置文件位于 ~/.vfox/config.yaml:
yaml
# ~/.vfox/config.yaml
registry:
  # 插件注册表地址
  url: "https://registry.vfox.io"
proxy:
  # HTTP 代理设置
  http: "http://proxy.example.com:8080"
  https: "https://proxy.example.com:8080"
cache:
  # 缓存目录
  dir: "~/.vfox/cache"
  # 缓存过期时间(小时)
  ttl: 24
shell:
  # 自动切换版本
  auto_switch: true
  # 显示版本信息
  show_version: true插件配置 
每个插件可以有自己的配置文件:
yaml
# ~/.vfox/plugins/nodejs/config.yaml
mirror:
  # Node.js 镜像地址
  url: "https://npmmirror.com/mirrors/node/"
install:
  # 安装后自动安装 npm 包
  auto_npm_install: true
  packages:
    - "yarn"
    - "pnpm"命令参考 
基本命令 
bash
vfox --version          # 查看版本
vfox --help             # 查看帮助
vfox setup              # 初始化设置
vfox update             # 更新 vfox插件命令 
bash
vfox add <plugin>       # 添加插件
vfox remove <plugin>    # 移除插件
vfox list               # 列出已安装插件
vfox search <keyword>   # 搜索插件
vfox info <plugin>      # 查看插件信息版本命令 
bash
vfox install <plugin>@<version>    # 安装版本
vfox uninstall <plugin>@<version>  # 卸载版本
vfox use <plugin>@<version>        # 使用版本
vfox list <plugin>                 # 列出已安装版本
vfox search <plugin>               # 搜索可用版本
vfox current                       # 查看当前版本环境命令 
bash
vfox env                # 查看环境变量
vfox env <plugin>       # 查看插件环境变量
vfox which <command>    # 查看命令路径
vfox exec <command>     # 在指定版本环境中执行命令最佳实践 
1. 项目版本管理 
在每个项目根目录创建 .vfox.yaml 文件:
yaml
versions:
  nodejs: "18.17.0"
  python: "3.11.4"2. 团队协作 
将 .vfox.yaml 文件提交到版本控制系统,确保团队成员使用相同版本:
bash
git add .vfox.yaml
git commit -m "Add vfox version configuration"3. CI/CD 集成 
在 CI/CD 流水线中使用 vfox:
yaml
# GitHub Actions 示例
steps:
  - name: Setup vfox
    run: |
      curl -sSL https://raw.githubusercontent.com/version-fox/vfox/main/install.sh | bash
      vfox setup
      
  - name: Install versions
    run: |
      vfox add nodejs
      vfox install nodejs@$(cat .vfox.yaml | grep nodejs | cut -d'"' -f4)
      vfox use nodejs@$(cat .vfox.yaml | grep nodejs | cut -d'"' -f4)4. 性能优化 
- 使用镜像源加速下载
- 定期清理不用的版本
- 配置合适的缓存策略
bash
# 清理缓存
vfox cache clean
# 清理未使用的版本
vfox gc故障排除 
常见问题 
1. 命令未找到
bash
# 确保 vfox 已正确初始化
vfox setup
source ~/.bashrc  # 或 ~/.zshrc2. 版本切换不生效
bash
# 检查当前版本
vfox current
# 重新加载环境
eval "$(vfox env)"3. 下载速度慢
bash
# 配置镜像源
vfox config set registry.mirror "https://mirror.example.com"4. 权限问题
bash
# 检查目录权限
ls -la ~/.vfox
# 修复权限
chmod -R 755 ~/.vfox调试模式 
bash
# 启用详细日志
vfox --verbose install nodejs@18.17.0
# 查看调试信息
vfox --debug use nodejs@18.17.0与其他工具对比 
| 特性 | vfox | nvm | pyenv | rbenv | 
|---|---|---|---|---|
| 跨平台 | ✅ | ❌ | ✅ | ✅ | 
| 多语言支持 | ✅ | ❌ | ❌ | ❌ | 
| 性能 | 🚀 | 🐌 | 🐌 | 🐌 | 
| 配置复杂度 | 简单 | 中等 | 复杂 | 中等 | 
| 插件系统 | ✅ | ❌ | ✅ | ✅ | 
| 项目配置 | ✅ | ✅ | ✅ | ✅ | 
vfox 作为新一代版本管理工具,提供了统一、高效的多语言版本管理解决方案。通过其强大的插件系统和简洁的配置,可以大大简化开发环境的管理工作。

