news 2026/8/23 8:48:54

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 Default

  • Xubuntu 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 和 Base:

core24 gnome-46-2404 gtk-common-themes mesa-2404 bare

也就是说,一台刚装好的 Ubuntu Desktop,Snap 已经是一套比较完整的运行体系了。


二、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.0G
Disk 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

大约减少:

400MB

Xubuntu 26.04 Minimal

项目去 Snap 前去 Snap 后
Memory Used700 多 MB700 多 MB
Disk Used约 8.3G约 7.9G

这个结果我觉得反而很有意义。

因为它说明:

Snap 本身并不是装着 snapd 就一定会吃掉大量内存。

真正影响资源占用的,是系统到底安装、运行了多少 Snap 应用和 Runtime。

因此:

Ubuntu Desktop Snap 比较多 → 去掉以后变化比较明显 Xubuntu Minimal 本来就没有 Snap 应用 → 去掉以后变化很小

这比简单说“删除 Snap 可以大幅提速”更加符合实际。


五、为什么我最后还是选择删除 Snap?

传统 Ubuntu 软件栈大致是:

Application ↓ APT / dpkg ↓ DEB ↓ Linux

Snap 又增加了一套:

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 Key:

wget -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-keys

Ubuntu 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

如果希望有 GUI:

sudo 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 Software:

sudo apt install gnome-software

如果希望它同时显示固件更新:

sudo apt install gnome-software-plugin-fwupd

于是可以得到:

GNOME Software │ ├── DEB 软件 └── Firmware / fwupd

我自己的 Host 上实际使用下来感觉不错。

但它只是一个:

可选的 GUI 软件中心。

不是去 Snap 后必须安装的东西。


十五、Flatpak 也完全按需使用

删除 Snap 并不意味着一定要安装 Flatpak。

如果所有需要的软件都有不错的 DEB:

APT / 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-2

APT 会准备一起删除:

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.1G
Xubuntu 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 应用;

  • 喜欢它的自动更新机制;

  • 不在意这点磁盘和后台组件;

那么完全没必要折腾。

但如果你:

  • 软件主要来自 DEB;

  • Snap 中没有不可替代的软件;

  • 更喜欢简单的软件栈;

  • 或者正在使用资源有限的虚拟机;

那么:

删除 Snap 是一个完全合理的选择。

至少我的实际结果是:

Ubuntu Desktop

Memory 1.1G → 1.0G Disk 11G → 9.9G

并且桌面偶发小卡顿有所减少。

Xubuntu Minimal

Memory 700 多 MB → 基本不变 Disk 8.3G → 7.9G

因为它本来就没装真正的 Snap 应用,所以变化自然小很多。


二十、最后

折腾完以后,我依然不认为 Snap 是一个“坏技术”。

它解决的问题是真实存在的:

跨版本发布 依赖管理 沙箱隔离 自动更新 IoT / Embedded

只是技术架构永远存在取舍。

对于我的 Ubuntu Desktop,大部分软件已经可以通过:

APT / DEB

解决。

Firefox 有 Mozilla 官方 DEB;

固件可以使用fwupd

想要软件商店可以安装 GNOME Software;

Flatpak、Flathub、AppImage 也都可以根据具体软件按需使用。

所以我的结论并不是:

Ubuntu 用户都应该删除 Snap。

而是:

需要 Snap,就继续用;不需要,也完全可以删。

而这次 Ubuntu 和 Xubuntu 两台 VM 的实际测试也说明:

去 Snap 的收益并不是固定的。Ubuntu Desktop 原本使用得多,变化就明显;Xubuntu Minimal 原本几乎没使用,变化就很小。

至少对我自己的 Ubuntu 26.04 Desktop 来说:

删除之后,系统确实更轻、更简单,偶发卡顿也有所减少。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 8:44:59

C++成员函数模板:从泛型设计到编译优化实战

1. 从“泛型”到“特化”&#xff1a;为什么需要成员函数模板&#xff1f;在C的模板世界里&#xff0c;我们早已习惯了编写通用的类模板&#xff0c;比如一个Vector<T>&#xff0c;它可以容纳任何类型的元素。但当我们深入到类的成员函数时&#xff0c;一个更精细的需求浮…

作者头像 李华
网站建设 2026/8/23 8:43:43

层次分析法实战指南:从多准则决策到科学量化

1. 从“拍脑袋”到“结构化”&#xff1a;为什么我们需要层次分析法在项目评审、方案选择、资源分配这些日常工作中&#xff0c;我们常常会遇到一个经典难题&#xff1a;面对多个备选方案&#xff0c;每个方案又涉及多个评价指标&#xff0c;我们该如何科学、客观地做出最终决策…

作者头像 李华
网站建设 2026/8/23 8:43:11

Bugku _正则_ No one knows regex better than me

**Bugku __ game1***题目作者: [ [硝基苯爸爸](https://ctf.bugku.com/user/info/id/6030.html)](https://ctf.bugku.com/user/info/id/2.html)*题目描述:正则好像没有想象中那么简单### 1、打开网页 ovo是php代码&#xff0c;题目说是正则&#xff0c;我去查了一手&#xff0c…

作者头像 李华
网站建设 2026/8/23 8:42:55

游戏平衡性测试技术中台实践:从报名筛选到数据分析

在实际游戏开发与运营中&#xff0c;平衡性测试是连接研发团队与核心玩家的关键桥梁&#xff0c;它直接决定了新版本、新角色或新机制上线后的游戏生态健康度。对于《无尽的拉格朗日》这类策略性极强的太空题材SLG游戏而言&#xff0c;数值平衡、舰船强度、策略克制关系的微妙调…

作者头像 李华
网站建设 2026/8/23 8:42:54

深入解析JavaScript事件循环:从单线程到异步编程的核心机制

如果你是一名 JavaScript 开发者&#xff0c;或者正在学习 Node.js、浏览器编程&#xff0c;那么“事件循环”和“异步代码”这两个词一定让你既熟悉又困惑。你可能知道setTimeout不会准时执行&#xff0c;知道Promise和async/await能让代码更优雅&#xff0c;但当面试官追问“…

作者头像 李华
网站建设 2026/8/23 8:42:47

面向具身智能的TVA高效训练与部署优化技术

前沿技术探索&#xff1a;TVA智能体&#xff08;简称TVA&#xff09;TVA智能体&#xff08;亦称“AI智能体视觉”或“TVA视觉智能体”&#xff09;是依托Transformer架构与“因式智能体”理论构建的系统级视觉技术框架。它融合深度强化学习&#xff08;DRL&#xff09;、卷积神…

作者头像 李华