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!