vx 0.4.1

Universal Development Tool Manager
Documentation
# vx global - 全局工具管理

管理全局安装的工具,包括查看、清理和依赖关系管理。

## 语法

```bash
vx global <subcommand> [options]
```

## 子命令

- `list` - 列出全局安装的工具
- `info` - 显示特定工具的详细信息
- `remove` - 移除全局工具
- `dependents` - 显示工具的依赖关系
- `cleanup` - 清理未使用的全局工具

## vx global list

列出全局安装的工具。

### 语法
```bash
vx global list [options]
```

### 选项
- `--verbose` - 显示详细信息
- `--size` - 显示磁盘使用情况
- `--sort <field>` - 排序字段:`name`, `version`, `size`, `date`

### 示例
```bash
# 列出所有全局工具
vx global list

# 显示详细信息
vx global list --verbose

# 显示磁盘使用
vx global list --size

# 按大小排序
vx global list --sort size
```

### 输出示例
```bash
$ vx global list --verbose
Global Tools:
  node@18.17.0
    Path: ~/.vx/tools/node/18.17.0/
    Size: 45.2 MB
    Installed: 2024-01-15 10:30:00
    Used by: 2 virtual environments
    
  node@20.10.0
    Path: ~/.vx/tools/node/20.10.0/
    Size: 47.8 MB
    Installed: 2024-01-10 14:20:00
    Used by: 0 virtual environments
    
  python@3.11.5
    Path: ~/.vx/tools/python/3.11.5/
    Size: 67.3 MB
    Installed: 2024-01-12 09:15:00
    Used by: 1 virtual environment
    
  uv@0.1.0
    Path: ~/.vx/tools/uv/0.1.0/
    Size: 8.7 MB
    Installed: 2024-01-14 16:45:00
    Used by: 3 virtual environments

Total: 4 tools, 168.0 MB
```

## vx global info

显示特定工具的详细信息。

### 语法
```bash
vx global info <tool>
```

### 示例
```bash
# 显示node工具信息
vx global info node

# 显示python工具信息
vx global info python
```

### 输出示例
```bash
$ vx global info node
Tool: node
Description: Node.js JavaScript runtime

Installed Versions:
  18.17.0 (active in 2 environments)
    - Path: ~/.vx/tools/node/18.17.0/
    - Size: 45.2 MB
    - Installed: 2024-01-15 10:30:00
    - Checksum: sha256:abc123...
    
  20.10.0 (unused)
    - Path: ~/.vx/tools/node/20.10.0/
    - Size: 47.8 MB
    - Installed: 2024-01-10 14:20:00
    - Checksum: sha256:def456...

Used by Virtual Environments:
  - myproject (18.17.0)
  - webapp (18.17.0)

Configuration:
  Registry: https://nodejs.org/dist/
  Auto-install: enabled
  Update check: enabled
```

## vx global remove

移除全局工具。

### 语法
```bash
vx global remove <tool>[@version] [options]
```

### 选项
- `--force` - 强制移除,忽略虚拟环境引用
- `--all` - 移除工具的所有版本
- `--dry-run` - 预览移除操作

### 示例
```bash
# 移除特定版本(仅当无虚拟环境引用时)
vx global remove node@20.10.0

# 强制移除(忽略虚拟环境引用)
vx global remove node@20.10.0 --force

# 移除所有版本
vx global remove node --all

# 预览移除操作
vx global remove node@20.10.0 --dry-run
```

## vx global dependents

显示工具的依赖关系。

### 语法
```bash
vx global dependents <tool>[@version]
```

### 示例
```bash
# 显示node的依赖关系
vx global dependents node

# 显示特定版本的依赖关系
vx global dependents node@18.17.0
```

### 输出示例
```bash
$ vx global dependents node@18.17.0
Tool: node@18.17.0

Used by Virtual Environments:
  - myproject
    Created: 2024-01-15 10:30:00
    Last used: 2024-01-20 14:22:00
    
  - webapp
    Created: 2024-01-18 09:15:00
    Last used: 2024-01-20 16:45:00

Referenced by Projects:
  - /home/user/projects/myproject (.vx.toml)
  - /home/user/projects/webapp (.vx.toml)

Dependencies:
  This tool is required by 2 environments.
  Cannot be safely removed without --force.
```

## vx global cleanup

清理未使用的全局工具。

### 语法
```bash
vx global cleanup [options]
```

### 选项
- `--dry-run` - 预览清理操作,不实际删除
- `--aggressive` - 激进清理,包括最近未使用的工具
- `--older-than <duration>` - 清理超过指定时间的工具
- `--size-threshold <size>` - 仅清理超过指定大小的工具

### 示例
```bash
# 清理未使用的工具
vx global cleanup

# 预览清理操作
vx global cleanup --dry-run

# 清理30天前的工具
vx global cleanup --older-than 30d

# 激进清理
vx global cleanup --aggressive
```

### 输出示例
```bash
$ vx global cleanup --dry-run
🧹 Global Cleanup Preview

Will remove:
  📦 node@20.10.0 (47.8 MB)
    - Reason: Not used by any virtual environment
    - Last used: Never
    
  📦 python@3.10.12 (65.1 MB)
    - Reason: Superseded by python@3.11.5
    - Last used: 2024-01-05 (15 days ago)

Will keep:
  ✅ node@18.17.0 (45.2 MB)
    - Reason: Used by 2 virtual environments
    
  ✅ python@3.11.5 (67.3 MB)
    - Reason: Used by 1 virtual environment
    
  ✅ uv@0.1.0 (8.7 MB)
    - Reason: Used by 3 virtual environments

Summary:
  - Will free: 112.9 MB
  - Will keep: 121.2 MB
  - Total savings: 48.3%

Run 'vx global cleanup' to execute this plan.
```

## 清理策略

### 自动清理规则
1. **未引用工具** - 不被任何虚拟环境使用的工具
2. **重复版本** - 同一工具的多个版本,保留最新和被使用的版本
3. **过期工具** - 超过指定时间未使用的工具
4. **损坏安装** - 安装不完整或损坏的工具

### 保护规则
1. **活跃使用** - 被虚拟环境引用的工具
2. **最近安装** - 7天内安装的工具
3. **配置指定** - 在项目配置中明确指定的版本

## 磁盘使用分析

```bash
$ vx global list --size --sort size
Global Tools (sorted by size):
  python@3.11.5    67.3 MB  (used)
  node@20.10.0     47.8 MB  (unused) ⚠️
  node@18.17.0     45.2 MB  (used)
  uv@0.1.0         8.7 MB   (used)

Total: 169.0 MB
Unused: 47.8 MB (28.3%)

💡 Run 'vx global cleanup' to free 47.8 MB
```

## 故障排除

### 清理失败
```bash
# 检查权限
ls -la ~/.vx/tools/

# 强制清理
vx global cleanup --force

# 手动删除
rm -rf ~/.vx/tools/node/20.10.0/
```

### 依赖检查错误
```bash
# 刷新依赖信息
vx global dependents node --refresh

# 检查虚拟环境状态
vx venv list
```

## 相关命令

- [venv]./venv.md - 虚拟环境管理
- [install]./install.md - 安装工具
- [remove]./remove.md - 移除工具
- [cleanup]./cleanup.md - 系统清理