如何在 Mac 上卸载 Multipass
Multipass 靠一个系统级后台服务创建和运行 Ubuntu 虚拟机,App 只是前端界面,所以删除任何东西之前,先把虚拟机实例删除并清空。这份指南覆盖 Canonical GitHub Releases 上的官方 pkg 安装包和 Homebrew cask multipass。这次记录的 Mole 测试只从 pkg 里拷出了 App,没有跑安装器,所以当时并没有下面说的后台服务。
先删除虚拟机实例
multipass list
multipass delete --all
multipass purge
multipass delete 只是把实例标记为待删除,在运行 multipass purge 之前还能用 multipass recover 找回,purge 才会彻底销毁所有已标记的实例(见 delete 命令、purge 命令)。用你自己的账号跑,不要加 sudo,继续之前先确认 multipass list 已经空了。
退出、移除 App
菜单栏里还有 Multipass 的话先退出,在「活动监视器」里确认没有 multipass 进程,再把 Multipass 从「应用程序」拖进废纸篓。
如果你跑过完整的 pkg 安装器,它还装了系统级后台服务 multipassd、/usr/local/bin/multipass 这个命令行工具和安装记录,直接把 App 拖进废纸篓一样都碰不到,这部分交给 Canonical 的卸载脚本:
sudo sh "/Library/Application Support/com.canonical.multipass/uninstall.sh"
这个脚本也会尝试删除虚拟机实例,GitHub 上有报告说以 root 身份跑时这一步会报认证错误,上面已经清空过实例的话,这个报错就没什么可删的了(见 issue #4484)。另一份报告提到旧版脚本会留下 /Library/Application Support/multipass-client-certificate 和 /Library/LaunchAgents/com.canonical.multipass.gui.autostart.plist,跑完之后顺手看看这两个还在不在(见 issue #2692)。
Multipass 的数据放在哪里
| 位置 | 里面是什么 | 如何处理 |
|---|---|---|
~/Library/Application Support/com.canonical.multipassGui |
bundle id 下的应用数据 | 默认勾选 |
~/Library/Application Support/multipass、~/Library/Application Support/multipass-gui |
以显示名命名的应用数据 | 默认列出但不勾选 |
~/Library/Preferences/multipass |
偏好设置文件夹 | 默认列出但不勾选 |
~/Library/Saved Application State/com.canonical.multipassGui.savedState |
窗口恢复状态 | 默认勾选 |
~/Library/LaunchAgents/com.canonical.multipass.gui.autostart.plist |
登录时启动菜单栏 App,Homebrew zap 清单里有这一项 | Multipass 不用了就移除,也去「系统设置 › 通用 › 登录项与扩展」看一眼 |
/Library/Application Support/com.canonical.multipass |
完整安装器装的后台服务系统文件和卸载脚本 | 留给 Canonical 的脚本处理 |
/usr/local/bin/multipass |
完整安装器装的命令行工具 | 由 Canonical 的脚本或 Homebrew 移除 |
检查结果
pgrep -il multipass
multipass list
ls -d ~/Library/Application\ Support/com.canonical.multipassGui
launchctl list | grep -i multipass
pgrep没有输出,说明没有名字带 Multipass 的进程在跑。multipass list报「command not found」,说明命令行工具已经不在了,列出实例说明还有没删掉的。ls -d打印出路径说明文件夹还在,提示「No such file or directory」说明已经不在了。launchctl list有输出,说明当前会话里还加载着 Multipass 的登录项或代理。
用 Homebrew 安装时
Mole 会先检查 zap 清单,涉及未勾选的数据、共用的文件或无法确认的内容时不执行 --zap,已勾选的残留仍由 Mole 清理。
multipass 这个 cask 走的是同一个 pkg,所以 brew uninstall --cask multipass 不管加不加 --zap,都会先跑它的卸载步骤,卸载 multipassd、清掉安装记录,再删除 /Library/Application Support/com.canonical.multipass、/Library/Logs/Multipass、/usr/local/bin/multipass 和 shell 补全文件。它的 zap 清单另外会碰到 ~/Library/Application Support/com.canonical.multipassGui、multipass、multipass-gui、登录项 plist、~/Library/Preferences/multipass 和窗口恢复状态,全部在你自己的 ~/Library 里。multipass、multipass-gui 和偏好设置文件夹默认列出但不勾选,所以保持默认勾选时 Mole 不带 --zap,把 zap 清单碰到的每一行都勾上,Mole 才可能加上它。
brew uninstall --cask multipass
Mole 会列出什么
~/Library/Application Support/com.canonical.multipassGui和窗口恢复状态默认勾选。~/Library/Application Support/multipass、~/Library/Application Support/multipass-gui和~/Library/Preferences/multipass默认列出但不勾选。- 程序指向 Multipass.app 里面的登录项 plist 会列出,默认勾选。
- 跑过完整安装器的话,Mole 还可能列出系统级的 Multipass 文件夹,默认不勾选,这部分留给 Canonical 的卸载脚本或 Homebrew,它们会顺带停掉后台服务。
这次检查覆盖了什么
2026 年 9 月 19 日,从官方 pkg 的 Payload 里拷出 App,没有跑安装器,所以当时没有后台服务和命令行工具,当天用 Mole Preview 277 卸载,bundle id 对应的 Application Support 文件夹作为默认勾选的一行被移除。完整安装器、正在运行的虚拟机实例、Canonical 的卸载脚本和 Homebrew cask 都不在这次测试范围内,后台服务和卸载脚本相关的内容来自 Homebrew cask 和两份公开的 GitHub 报告,是 2026 年 9 月 27 日核对的。
