当我使用 安装 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