如何从缓存中删除已卸载的快照?

如何从缓存中删除已卸载的快照?

当我使用 安装 snapsnap install <SNAPNAME>时,它会被下载并安装。当我使用 删除它snap remove <SNAPNAME>时,所有内容都会被删除,如 snap、用户设置依赖项等。但是当我删除 snap 后重新安装它时,它没有下载时间,因此 snap 必须存储在某个地方。

如何清除所有已卸载的 snapd 的缓存?

答案1

您可以毫无问题地删除文件/var/lib/snapd/cache。此外,之前无需停止 snapd。

这个问题已在Snapcraft 论坛

答案归结为:您不应该拥有大量硬链接数为 1 的文件;默认安装中最多 5 个。如果数量超过这个数字,则表明存在错误,请告知我们。

是的,您可以毫无问题地删除它们;无需停止 snapd。

下面是执行该操作的命令:

sudo sh -c 'rm -rf /var/lib/snapd/cache/*'

答案2

还要注意,Snap 不仅会保留已删除的快照,还会保留该快照的最多 20 个旧版本(标准为 3 个版本)。因此,对我来说,清理这些剩余副本比清理缓存可以回收更多的存储空间(5GB 对 1GB)。本网站有一个很好的脚本,我用它来做这个:

#!/bin/bash
#Removes old revisions of snaps
#CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' |
    while read snapname revision; do
        snap remove "$snapname" --revision="$revision"
    done

答案3

如果您没有卸载该软件包并且不关心设置,您也可以简单地执行以下操作:

sudo snap remove --purge $PACKAGE

相关内容