BrewUI是为Homebrew设计的图形化界面工具,通过可视化操作简化安装、升级、卸载及清理流程,尤其支持cask管理的图形应用和--zap深度卸载,降低命令行使用门槛。
mac 上通过 cask 卸载“顽固的系统级外挂”,关键不是强行删除,而是识别它是否真由 homebrew cask 管理,并用对应机制触发其内置清理逻辑。所谓“外挂”,通常指带后台服务、登录项、内核扩展(kext)、launchagent/daemon 或系统偏好设置面板的第三方工具(如 cleanmymac x、parallels、某些 ntfs 驱动、监控类 app),它们残留深、自启强、手动难清。
先确认它是不是 Cask 安装的
很多“外挂”看似系统级,实则只是普通图形应用,安装方式却混杂。必须先验证来源:
- 打开终端,运行 brew list --casks,查看目标软件名是否在列表中(如
parallels、cleanmymac、ntfs-3g) - 若不在列表,说明它不是用
brew install --cask装的——可能是 pkg 安装、拖拽安装或脚本注入,此时brew uninstall无效,需换路径处理 - 若名字存在但拼写不明确,可用 brew search 关键词(如
brew search para)辅助定位
用 --zap 彻底清除 Cask 管理的外挂
Cask 自带 --zap 参数,专为这类深度集成应用设计。它会执行该 App 对应的 zap DSL 脚本(由社区维护),主动清理以下位置:
-
~/Library/Preferences/ 下的 plist 文件(如
com.parallels.vm.plist) - ~/Library/Application Support/ 中专属支持目录
- ~/Library/Caches/ 和 ~/Library/Logs/
-
~/Library/LaunchAgents/ 中的自启配置(如
com.parallels.vm.prl_pc_proxy.plist) - 部分还会删 /Library/LaunchDaemons 或 /Library/Extensions(需 sudo 权限,脚本内自动处理)
执行命令示例:
brew uninstall --cask --zap parallels
卸载后仍残留?检查三类“逃逸项”
即使用了 --zap,仍有少数组件可能漏掉,尤其涉及系统底层的外挂:
-
内核扩展(kext):查看
/Library/Extensions/或/System/Library/Extensions/(后者仅 macOS 12 及更早),用kextstat | grep -i 关键词确认是否加载;卸载后若仍有条目,需手动移除并运行sudo kextcache -i / -
系统偏好设置面板:检查
/Library/PreferencePanes/,删除对应 .prefPane 文件 -
全局 CLI 工具或服务守护进程:有些外挂会注册
brew services或自建 service,运行brew services list查看;若显示 started,先brew services stop 名称再卸载
非 Cask 安装的“伪外挂”怎么办
如果确认不是 Cask 安装(比如官网下载的 pkg 包),但又带系统级行为,推荐两步走:
- 优先找官方卸载器:进 访达 → 应用程序 → [App 名] 文件夹,查找
Uninstall、Remove或Helper类应用,双击运行 - 没有卸载器?用 Pearcleaner 或 App Cleaner & Uninstaller 扫描:它们能基于 bundle ID 和签名证书反向追踪所有关联文件,比手动
mdfind更准,且支持预览和安全删除

















