在我的虚拟机上,大量空间被占用/var/lib/snapd/snaps/
-rw------- 1 root root 4096 mar 16 2023 bare_5.snap
-rw------- 1 root root 66547712 sie 23 19:41 core20_2015.snap
-rw------- 1 root root 67014656 sty 15 18:15 core20_2105.snap
-rw------- 1 root root 77713408 sty 15 18:15 core22_1033.snap
-rw------- 1 root root 77492224 sie 30 00:33 core22_864.snap
-rw------- 1 root root 366682112 sie 23 19:42 gnome-3-38-2004_143.snap
-rw------- 1 root root 509100032 sie 23 04:31 gnome-42-2204_126.snap
-rw------- 1 root root 521121792 sty 15 18:16 gnome-42-2204_141.snap
-rw------- 1 root root 96141312 mar 16 2023 gtk-common-themes_1535.snap
drwxr-xr-x 2 root root 4096 gru 1 2022 partial
-rw------- 1 root root 42827776 wrz 19 07:38 snapd_20092.snap
-rw------- 1 root root 42393600 sty 15 18:15 snapd_20671.snap
-rw------- 1 root root 12922880 maj 25 2023 snap-store_959.snap
其中很多看起来像重复的(core20_2015
和core20_2105
和core22_1033
和core22_864
)
snap help
snap help --all
snap help --all|grep temp
snap help --all|grep clean
未能揭示解决方案。
是否有一些适当的方法来删除这些明显的重复项?
遗憾的是,在这种情况下,完全摆脱快照是不可行的,因为 VM 应该镜像生产(并且需要做比清除快照感染更重要的事情)。
snap --version
snap 2.61.1
snapd 2.61.1
series 16
ubuntu 20.04
kernel 5.15.0-84-generic
答案1
snapd 默认为每个 snap 保留两个版本,当前版本和前一个版本。这可以不是减少,最低限度是两个(但如果需要,可以增加)。
core20_xxx
并且core22_xxx
不是重复,但两个核心系统不同。snap 可以针对两个核心版本构建,这取决于 snap 的提供者。只有当您确定没有安装的 snap 依赖此核心版本时,删除其中一个核心版本才是安全的。
snap 应该绝不可以手动删除,但总是使用 snap 命令行界面使用sudo snap remove name_of_the_snap
。
Ubuntu 作为操作系统不依赖 snap,至少不依赖目前支持的版本(20.04 LTS、22.04 LTS、23.10)。因此,您可以使用上述命令删除所有 snap,然后删除正在运行的 snapd 包sudo apt purge snapd