Ubuntu 26.04 去 Snap 实践:删掉之后,系统确实更轻了

📅 2026/8/23 8:48:54
Ubuntu 26.04 去 Snap 实践:删掉之后,系统确实更轻了
最近一直在 VirtualBox 里测试 Ubuntu 26.04、Xubuntu 26.04也顺便认真研究了一下 Ubuntu 默认使用的Snap。我并不特别反感 Snap。从技术上讲Snap 解决了跨版本依赖、应用隔离、自动更新等问题在 Ubuntu Core、IoT 等场景下也有它自己的价值。但放到普通 Linux Desktop 上我始终觉得如果平时根本不用几个 Snap 应用却要为此保留 snapd、Runtime、SquashFS 挂载以及另一整套软件分发体系架构上多少有点复杂。于是我分别在Ubuntu 26.04 Desktop DefaultXubuntu 26.04 Minimal两台虚拟机中测试了完整删除 Snap。确认没有问题以后我最后也把自己的 Ubuntu 26.04 Host 上的 Snap 删除了。实际体验比我预想的还不错。一、Ubuntu 26.04 默认其实装了不少 Snap先看我的Ubuntu 26.04 Desktop Default虚拟机。这是之前为了测试发行版安装的一台比较纯净的 Ubuntu VM没有额外折腾太多软件。执行snap list可以看到bare core24 desktop-security-center firefox firmware-updater gnome-46-2404 gtk-common-themes mesa-2404 prompting-client snap-store snapd snapd-desktop-integration这里既有真正的桌面应用Firefox Firmware Updater Snap Store Desktop Security Center也有 Snap 自己需要的 Runtime 和 Basecore24 gnome-46-2404 gtk-common-themes mesa-2404 bare也就是说一台刚装好的 Ubuntu DesktopSnap 已经是一套比较完整的运行体系了。二、Xubuntu 26.04 Minimal 情况完全不同我的另一台测试机是Xubuntu 26.04 Minimal它明显精简很多。安装完成后运行snap list一开始就是空的没有 Firefox Snap也没有 Snap Store、GNOME Runtime 之类的东西。实际上主要只是系统安装了snapd这个 DEB 包Snap 应用本身并没有装。这就形成了一个很有意思的对比Ubuntu Desktop ↓ 默认已经使用大量 Snap Xubuntu Minimal ↓ 基本只有 snapd Snap 应用为空因此后面实际测试出来的资源变化也完全不同。三、实测Ubuntu Desktop 去 Snap 后变化比较明显我分别记录了删除 Snap 前后的资源占用。这里特别说明一下测试方法删除 Snap 后我不是立即记录数据而是重新安装了实际需要的 Firefox DEB 等替代软件重启系统以后再做对比。所以后面的数据不是一个“删除 Snap 后什么软件都没有”的空系统。Ubuntu 26.04 Desktop Default实测结果项目去 Snap 前去 Snap 并安装需要的软件后Memory Used约 1.1G约 1.0GDisk Used约 11G约 9.9G也就是Memory Used 1.1G → 1.0G Disk Used 11G → 9.9G内存大约减少100MB磁盘占用大约减少1.1GB而且除了数字之外我还有一个比较明显的主观感受Ubuntu Desktop 原本偶尔出现的一点小卡顿减少了桌面操作感觉更轻快了一些。当然这不是严格 Benchmark。Linux 内存会受到 Cache、后台任务等因素影响虚拟机本身也存在一定波动所以不能简单得出“删除 Snap 一定能提升多少百分比性能。”但至少在我的这台 Ubuntu 26.04 VM 上资源占用和实际体验都确实有所改善。四、Xubuntu Minimal内存基本没变只省了一些磁盘Xubuntu 26.04 Minimal 的结果就没有这么明显了。因为它一开始snap list就是空的。没有 Firefox Snap也没有 Snap Store更没有一堆 GNOME / Mesa Runtime。所以我删除 snapd 后内存仍然保持在700 多 MB前后基本没有明显变化。磁盘占用则是8.3G → 7.9G大约减少400MBXubuntu 26.04 Minimal项目去 Snap 前去 Snap 后Memory Used700 多 MB700 多 MBDisk Used约 8.3G约 7.9G这个结果我觉得反而很有意义。因为它说明Snap 本身并不是装着 snapd 就一定会吃掉大量内存。真正影响资源占用的是系统到底安装、运行了多少 Snap 应用和 Runtime。因此Ubuntu Desktop Snap 比较多 → 去掉以后变化比较明显 Xubuntu Minimal 本来就没有 Snap 应用 → 去掉以后变化很小这比简单说“删除 Snap 可以大幅提速”更加符合实际。五、为什么我最后还是选择删除 Snap传统 Ubuntu 软件栈大致是Application ↓ APT / dpkg ↓ DEB ↓ LinuxSnap 又增加了一套Application ↓ Snap ↓ snapd ↓ Runtime / Base ↓ Linux如果平时再使用 Flatpak 和 AppImage那么桌面 Linux 上可能同时存在APT / DEB Snap Flatpak AppImage这些当然可以和平共处。我自己的 Host 上其实一直有 Flatpak因为之前安装 Damask 就已经在用了。所以这次删除 Snap并不是为了追求所谓“系统只能有 DEB 才算纯洁。”我的原则其实非常简单需要的就留不需要的就尽量减少。Flatpak 我确实有软件在使用所以保留。Snap 里面如果没有自己不可替代的软件那么少维护一套 Runtime 和后台基础设施对我来说反而更加简单。六、删除之前先看看自己到底装了什么不要直接照抄网上教程里的软件名。先执行snap list不同 Ubuntu 版本、不同安装方式结果可能完全不同。例如很多旧教程还会让你删除core22 gnome-42-2204但 Ubuntu 26.04 上未必是这些。所以永远以自己机器上的snap list为准。另外如果系统使用了 TPM-backed Full Disk Encryption 等特殊的新架构也应该先确认 snapd 是否属于系统基础依赖。本文主要针对普通 Ubuntu / Xubuntu Classic Desktop。七、先删除应用 Snap以我的 Ubuntu 26.04 Desktop 为例先删除真正的应用sudo snap remove --purge firefox sudo snap remove --purge snap-store sudo snap remove --purge firmware-updater sudo snap remove --purge desktop-security-center sudo snap remove --purge prompting-client sudo snap remove --purge snapd-desktop-integration然后snap list看看还剩什么。这里没有必要完全照抄我的列表。例如 Xubuntu Minimal 本来就是空的这一步自然可以直接跳过。八、再删除 Runtime 和 Base我的 Ubuntu Desktop 随后主要剩下gnome-46-2404 gtk-common-themes mesa-2404 core24 bare snapd继续sudo snap remove --purge gnome-46-2404 sudo snap remove --purge gtk-common-themes sudo snap remove --purge mesa-2404 sudo snap remove --purge core24 sudo snap remove --purge bare如果提示snap xxx is being used by ...不要强制删除。重新snap list检查还有哪个上层 Snap 没有清掉即可。所有其他 Snap 都删除以后最后sudo snap remove --purge snapd九、防止 snapd 以后又被 APT 拉回来Ubuntu 中有些 DEB 实际上只是 Snap 的过渡包。既然已经确定这台机器不再使用 Snap可以增加一个 APT Pin。创建sudo nano /etc/apt/preferences.d/nosnap.pref写入Package: snapd Pin: release a* Pin-Priority: -10这样普通 APT 操作就不会再自动把snapd安装回来。以后如果又想恢复 Snap删除这个文件即可。十、删除 snapd DEB接下来sudo apt purge snapd我不建议直接写-y让 APT 先把准备删除的软件列出来。确认没有异常再继续。然后sudo apt autoremove同样先看一下删除列表。我也不建议照一些教程再执行sudo rm -rf /var/lib/snapd sudo rm -f /usr/lib/snapd/snapd能交给 APT / dpkg 管理的系统文件就尽量交给包管理器自己处理。十一、最后处理用户目录检查ls -la ~/snap如果已经是空目录rmdir ~/snap如果里面还有 Firefox 等应用留下的数据则先确认是否还需要。十二、可选重新安装 Firefox DEB如果本来就不用 Firefox这一步可以完全跳过。例如我的 Xubuntu Minimal 测试机之前就没有安装 Firefox因此删除 Snap 后也没有特意再安装。如果像 Ubuntu Desktop 或 Host 一样希望留一个 Firefox可以使用 Mozilla 官方 APT Repository 安装 DEB 版。Mozilla 官方安装说明https://support.mozilla.org/en-US/kb/install-firefox-linux https://support.mozilla.org/zh-CN/kb/install-firefox-linux首先sudo install -d -m 0755 /etc/apt/keyrings导入 Mozilla Keywget -q https://packages.mozilla.org/apt/repo-signing-key.gpg \ -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc /dev/null官方指纹35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3可以验证gpg -n -q --import --import-options import-show \ /etc/apt/keyrings/packages.mozilla.org.asc如果第一次使用 GPG遇到~/.gnupg相关问题可以先mkdir -m 700 ~/.gnupg gpg --list-keysUbuntu 26.04 Resolute 使用sudo tee /etc/apt/sources.list.d/mozilla.sources /dev/null EOF Types: deb URIs: https://packages.mozilla.org/apt Suites: mozilla Components: main Signed-By: /etc/apt/keyrings/packages.mozilla.org.asc EOF设置优先级sudo tee /etc/apt/preferences.d/mozilla /dev/null EOF Package: * Pin: origin packages.mozilla.org Pin-Priority: 1000 EOF最后sudo apt update sudo apt install firefox检查apt policy firefox command -v firefox应该可以看到 Firefox 来自packages.mozilla.org程序路径则是/usr/bin/firefox这样 Firefox 就重新回到了传统 DEB 体系。十三、可选实体机需要固件更新怎么办这个问题对 VirtualBox VM 其实没什么实际意义。我的 VM 中安装gnome-firmware主要只是为了验证Host 真正去 Snap 后固件更新功能有没有替代方案。答案是有。真正负责 Linux 固件更新的是fwupd如果希望有 GUIsudo apt install fwupd gnome-firmware结构是GNOME Firmware ↓ fwupd ↓ Firmware / LVFS命令行也可以直接fwupdmgr get-devices fwupdmgr refresh fwupdmgr get-updates sudo fwupdmgr update所以删除 Snapfirmware-updater后并不会失去 Linux 的底层固件更新能力。对于虚拟机这一项通常不需要。对于 ThinkPad、台式机等实体 Host如果有 BIOS、Thunderbolt、SSD 等固件更新需求可以按需安装。十四、可选Snap Store 没了怎么办如果平时习惯命令行apt或者直接去软件官网下载 DEB那么甚至什么都不用安装。如果仍然想保留一个图形化软件中心可以安装 GNOME Softwaresudo apt install gnome-software如果希望它同时显示固件更新sudo apt install gnome-software-plugin-fwupd于是可以得到GNOME Software │ ├── DEB 软件 └── Firmware / fwupd我自己的 Host 上实际使用下来感觉不错。但它只是一个可选的 GUI 软件中心。不是去 Snap 后必须安装的东西。十五、Flatpak 也完全按需使用删除 Snap 并不意味着一定要安装 Flatpak。如果所有需要的软件都有不错的 DEBAPT / DEB完全够用。如果以后碰到某个软件在 Flathub 上维护得更好再安装sudo apt install flatpak需要 GNOME Software 集成的话sudo apt install gnome-software-plugin-flatpak再添加 Flathub 即可。我的情况是Host本来就有 Flatpak因为 Damask 正在使用所以继续保留Ubuntu / Xubuntu VM没有实际 Flatpak 需求所以没有特意安装。因此我的观点不是Snap → Flatpak而是Snap、Flatpak、AppImage 都只是工具需要哪个就用哪个。十六、这两个 snapd 相关库不要为了“干净”强行删删除完成以后dpkg -l | grep snapd我的 Ubuntu Desktop 仍然能看到gir1.2-snapd-2 libsnapd-glib-2-1第一眼很容易觉得怎么 Snap 还没删干净但是检查apt-cache rdepends --installed libsnapd-glib-2-1会发现它还被PipeWire WirePlumber CUPS等组件依赖。而apt-cache rdepends --installed gir1.2-snapd-2还会看到Update Manager GNOME Shell Ubuntu Extensions我实际测试过如果强行执行sudo apt purge libsnapd-glib-2-1 gir1.2-snapd-2APT 会准备一起删除gnome-shell gdm3 ubuntu-session pipewire cups gnome-control-center update-manager ...这种时候一定要取消。这两个只是Snap API 客户端兼容库。它们不是snapd daemon不会启动 Snap自动更新 Snap创建 loop mount运行 Snap 后台服务。所以留着完全没有问题。十七、怎么确认 Snap 真正删除完成检查apt policy snapd我的最终状态是Installed: (none) Candidate: (none)仓库里的版本因为 APT Pin 已经变成-10再检查command -v snap没有输出。检查服务systemctl list-unit-files | grep -i snap没有输出。检查挂载mount | grep snap同样没有输出。最后ls -ld /snap /var/snap /var/lib/snapd 2/dev/null也没有相关目录。做到这里Snap 的实际运行体系已经不存在了。没有必要继续为了追求dpkg -l | grep snapd必须零输出而破坏其他 Ubuntu Desktop 组件。十八、两台 VM 的结果放在一起看最后把这次两个测试环境放到一起系统去 Snap 前去 Snap 后磁盘变化Ubuntu 26.04 DesktopMemory 约 1.1G / Disk 约 11GMemory 约 1.0G / Disk 约 9.9G-1.1GXubuntu 26.04 MinimalMemory 700 多 MB / Disk 约 8.3GMemory 仍为 700 多 MB / Disk 约 7.9G-0.4G这个结果其实很好理解。Ubuntu Desktop 原本Firefox Snap Store Firmware Updater Security Center GNOME Runtime Mesa Runtime Core ...确实有一整套 Snap 环境。Xubuntu Minimal 则snap list → 本来就是空的主要只是把snapdDEB 去掉。所以系统原本使用 Snap 越多完整移除后的变化自然越明显。这也是为什么我不太赞成简单宣传“删除 Snap 就能明显提升 Ubuntu 性能。”更加准确的说法应该是删除自己不用的 Snap可以减少一些磁盘、后台组件和软件栈复杂度实际收益有多大要看原本装了多少 Snap。十九、那么到底值得删除 Snap 吗我觉得应该分情况。如果你Firefox Snap 用得很好经常使用 Ubuntu App Center自己安装了很多 Snap 应用喜欢它的自动更新机制不在意这点磁盘和后台组件那么完全没必要折腾。但如果你软件主要来自 DEBSnap 中没有不可替代的软件更喜欢简单的软件栈或者正在使用资源有限的虚拟机那么删除 Snap 是一个完全合理的选择。至少我的实际结果是Ubuntu DesktopMemory 1.1G → 1.0G Disk 11G → 9.9G并且桌面偶发小卡顿有所减少。Xubuntu MinimalMemory 700 多 MB → 基本不变 Disk 8.3G → 7.9G因为它本来就没装真正的 Snap 应用所以变化自然小很多。二十、最后折腾完以后我依然不认为 Snap 是一个“坏技术”。它解决的问题是真实存在的跨版本发布 依赖管理 沙箱隔离 自动更新 IoT / Embedded只是技术架构永远存在取舍。对于我的 Ubuntu Desktop大部分软件已经可以通过APT / DEB解决。Firefox 有 Mozilla 官方 DEB固件可以使用fwupd想要软件商店可以安装 GNOME SoftwareFlatpak、Flathub、AppImage 也都可以根据具体软件按需使用。所以我的结论并不是Ubuntu 用户都应该删除 Snap。而是需要 Snap就继续用不需要也完全可以删。而这次 Ubuntu 和 Xubuntu 两台 VM 的实际测试也说明去 Snap 的收益并不是固定的。Ubuntu Desktop 原本使用得多变化就明显Xubuntu Minimal 原本几乎没使用变化就很小。至少对我自己的 Ubuntu 26.04 Desktop 来说删除之后系统确实更轻、更简单偶发卡顿也有所减少。