Skip to content

Homebrew 清理孤立资源指南

zzh0u

Mac 用久了,Homebrew 总会积攒一些「历史债务」——brew install 拉了一串依赖进来,工具卸了,依赖还在电脑里。磁盘空间就这样在这些看不见的地方悄悄流失。这篇博客整理了残留依赖的清理方式,按需选择。

1. 基础清理(安全,推荐先执行)

# 清理下载缓存 + 删除旧版本 bottle
brew cleanup

# 查看会清理什么(模拟运行,不实际删除)
brew cleanup -n

这步不会删已安装的包,只是清理下载缓存和旧版本的 bottle。如果你的 Homebrew 用了很久,这步往往能释放不少空间。

2. 自动移除孤立依赖(最常用)

brew autoremove

这是 Homebrew 3.5+ 引入的命令,专门解决依赖残留的问题。执行完能卸掉一批不再被任何包依赖的 formulae。autoremove 只会删除明确作为依赖安装、且现在没有任何包在用的公式。如果你曾经手动 brew install 过某个包,即使它现在没被依赖,也不会被自动删除。

3. 查看“叶子节点”

# 列出你手动安装、且没有其他包依赖的顶层包
brew leaves

# 对比:哪些包是被依赖拉进来的
brew deps --tree --installed $(brew leaves)

brew leaves 的输出就是你当初主动装的那些顶层包。找出不需要的软件包,用 brew uninstall <package> 手动卸载即可。

4. 用 wthis 确认包的身份

brew leaves 列出来的包不一定都知道是干什么的。有时候翻到一行不认识的包名,想不起来当初为啥装的,也不知道现在还有没有别的东西依赖它,就可以用 wthis。这是我关注的一个博客网站,能从他的博客看出是个对自己和身边的事物有追求的人,值得一试。下面给出急出用法,更多用法可以读文档或自行探索发现^_^

brew install BigCoke233/tap/wthis

wthis <package_name>

5. 深度清理(谨慎)

# 清理所有缓存,包括最新版本的下载文件
brew cleanup -s

# 清理指定包的旧版本(比如 node 有多个版本)
brew cleanup node

-s 会把所有缓存都清掉,包括最新版本的 .tar.gz 等下载文件。下次 brew install 会重新下载,所以谨慎使用。

6. 检查 Cask 残留

有些 app 是通过 brew install --cask 安装的,卸载后可能还会在缓存目录留下配置文件:

# 查看已安装 cask 的残留配置
brew doctor

# 手动检查 Cask 的残留目录
ls ~/Library/Caches/Homebrew/Cask

brew doctor 是个好习惯,跑完清理流程后也可以用它验证一下系统状态。

7. 命令汇总

# 1. 更新配方索引
brew update

# 2. 升级所有包(减少旧版本堆积)
brew upgrade

# 3. 清理下载缓存和旧版本
brew cleanup

# 4. 删除孤立依赖
brew autoremove

# 5. 验证系统状态
brew doctor

Hope Your system is ready to brew Everyday!

Next
和家人住在一起