如何安全清理 Homebrew
Homebrew 会在安装和升级时清理相关旧版本,也会定期执行全局清理,长期使用后,下载缓存、固定版本、构建产物和旧依赖仍可能累积。手动删除目录会绕过 Homebrew 的版本与依赖记录,用它自己的命令查看和清理会更稳妥。
Homebrew 会留下什么
- 旧版本: cleanup 通常会删除被取代版本,但固定或刚升级的版本可能继续保留一段时间
- 下载归档: bottle 与 cask 下载会进入缓存,避免再次下载
- 未使用依赖: 当前 cleanup 和 uninstall 通常会自动移除不再需要的 formula 依赖。旧安装、中断操作或关闭自动移除后仍可能有残留
查看缓存位置和大小:
brew --cache
du -sh "$(brew --cache)" 2>/dev/null
先预览,再清理
普通清理命令:
brew cleanup
当前 Homebrew 手册说明,普通 cleanup 默认移除旧安装版本和超过 120 天的下载,HOMEBREW_CLEANUP_MAX_AGE_DAYS 可以调整保留时间。先用 -n 预览。-s 会更深入地清理缓存,但仍保留当前已安装 formula 和 cask 所需的下载:
brew cleanup -n
brew cleanup -s
想单独检查未使用依赖,可以运行:
brew autoremove --dry-run
brew autoremove
brew list 列出已安装软件包,brew outdated 显示待更新项目,brew --cellar、brew --caskroom 和 brew --cache 则会返回真实路径。Intel 与 Apple 芯片的安装位置不同,写死 /opt/homebrew 容易找错目录。
为什么不用 Finder 手动删
Homebrew 会把 formula 的每个版本安装到 brew --cellar 返回的 Cellar,再把当前版本链接到前缀。升级时,新旧版本会先并存,然后活动链接才切换。cask 元数据位于 Caskroom,应用包通常在 /Applications。下载则保存在 brew --cache 返回的位置。
brew cleanup 会根据安装版本、保留策略和依赖关系选择对象,brew autoremove 只处理依赖判断。它们比手动删目录安全,但仍可能移除用于回退的旧版本或离线安装所需的 bottle,所以要先预览,并有意保留固定版本与关键工具链。
磁盘地图可以发现 Homebrew 缓存并显示大小,Mole 也能展示这一类别,版本和依赖关系仍以 Homebrew 自己的记录为准,找到位置并不等于已经知道能否删除。
路径命令能说明各存储实际有多大,brew cleanup -n 则能预览具体候选项。普通 cleanup 不够时才需要考虑 -s,依赖关系可以单独用 brew autoremove --dry-run 检查,自动清理正常、磁盘空间充足时,没有必要设定固定周期。