如何在 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

显示:

image

我们可以删除 标记为 已禁用的包 或 disabled

snap remove core18  --revision=2721

再次查看内存:

显示:4.5G /var/lib/snapd

查看包:snap list --all

结果:image

多余的包被移除了。

参考链接:
【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 包。

你看到这个错误是因为:

  • core22gnome-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

也干净了

posted @ 2023-06-24 21:09  Zenith_Hugh  阅读(779)  评论(0)    收藏  举报