如何在 ubuntu 20.04 中清理 Snap 包的版本和弃用 snap?
1. 问题
使用 ubuntu 自带的磁盘分析器,我们发现 snap 占用了很大的内存。
2. 解决:
首先查看下 snap 占用的内存
sudo du -sh /var/lib/snapd
显示:4.6G /var/lib/snapd
cd /var/lib/snapd/snaps
snap list --all
显示:
我们可以删除 标记为 已禁用的包 或 disabled
snap remove core18 --revision=2721
再次查看内存:
显示:4.5G /var/lib/snapd
查看包:snap list --all
结果:
多余的包被移除了。
参考链接:
【1】https://zhuanlan.zhihu.com/p/471882972
【2】https://blog.csdn.net/m0_50181189/article/details/119855107
链接2 可以用来 清理日志等文件的参考。
3. 完全卸载 snap
sudo snap list --all
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
core20 20250429 2582 latest/stable canonical✓ base
core22 20250425 1981 latest/stable canonical✓ base
gnome-3-38-2004 0+git.efb213a 143 latest/stable/… canonical✓ -
gnome-42-2204 0+git.38ea591 202 latest/stable canonical✓ -
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical✓ -
snap-store 41.3-72-g80e7130 1216 latest/stable/… canonical✓ -
snapd 2.68.4 24505 latest/stable canonical✓ snapd
是的,你完全可以不用 Snap,甚至可以彻底卸载 Snap 系统,你的当前系统中也没有特别依赖 Snap 的关键应用(如 firefox
, chromium
, vlc
等),唯一的用户应用是 snap-store
,可以替换。
✅ 卸载 Snap 的前提检查
从你的列表中,当前只装了这些 Snap:
snap-store
:Ubuntu 的 GUI 应用商店,Snap 应用。可以不用。- 其余是运行时依赖(
core20
,core22
,gnome-*
,gtk-*
,snapd
)或空壳(bare
)。
结论:你完全可以安全地卸载 Snap,且不会影响系统的 apt/dpkg 方式的软件管理。
🧹卸载 Snap 的完整步骤(Ubuntu 20.04)
1. 卸载所有 Snap 应用
sudo snap remove snap-store
再运行:
sudo snap remove --purge gtk-common-themes gnome-3-38-2004 gnome-42-2204 core22 core20 bare
报错:
error: cannot remove "gtk-common-themes", "gnome-3-38-2004", "gnome-42-2204", "core22", "core20",
"bare": snap "core22" is not removable: snap is being used by snap gnome-42-2204.
这是 Snap 的依赖机制在起作用:你不能删除一个还被其他 Snap 包依赖的 Snap 包。
你看到这个错误是因为:
core22
被gnome-42-2204
依赖,gnome-42-2204
又被其他 Snap(比如gtk-common-themes
或曾经的snap-store
)依赖。
✅ 正确卸载 Snap 的顺序
你需要先删除依赖链顶端的 Snap 应用,再删除它们依赖的 runtime Snap。
按以下顺序执行:
# 1. 删除用户应用
sudo snap remove snap-store
# 2. 删除主题和 UI 支持层
sudo snap remove gtk-common-themes
# 3. 删除 GNOME runtime
sudo snap remove gnome-3-38-2004
sudo snap remove gnome-42-2204
# 4. 删除底层 core Snap
sudo snap remove core22
sudo snap remove core20
sudo snap remove bare
# 确保没有残留 Snap 应用:
snap list
# 5. 删除 Snap 系统服务
sudo apt purge snapd
# 6. 清理残留文件
sudo rm -rf ~/snap /snap /var/snap /var/lib/snapd
💡 一条命令自动卸载(可选)
如果你懒得一条条输入,可以一口气执行:
sudo snap remove snap-store gtk-common-themes gnome-3-38-2004 gnome-42-2204 && \
sudo snap remove core22 core20 bare && \
# 卸载 `snapd` 本体
sudo apt purge snapd && \
# 顺手清理残留目录
sudo rm -rf ~/snap /snap /var/snap /var/lib/snapd
如果某一步失败,请根据错误提示调整顺序或单独执行。
卸载完成后,你的系统将完全不再依赖 Snap,空间也会释放几百 MB,mount 也会干净很多。如果你还想替代 snap-store
,可以用:
sudo apt install gnome-software
如需我生成一个 .sh
脚本文件,也可以告诉我。
✅ 如果你需要 GUI 软件管理器(替代 snap-store)
你可以装传统的 GNOME 软件中心(基于 apt
而非 snap
):
sudo apt install gnome-software
🚫 注意:部分未来版本的 Ubuntu(如 22.04+)已强制 firefox
使用 Snap 提供。如果你以后升级系统,需格外注意。
🔄 后悔了怎么办?
重新安装 snapd:
sudo apt install snapd
如果你希望我提供一键脚本来完成以上卸载操作,也可以告诉我。
df -h
也干净了