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

Emi*_*ler 37 ubuntu-core snap

当我安装 snap 时,snap install <SNAPNAME>它正在被下载和安装。当我删除它时,snap remove <SNAPNAME>“所有内容”都将被删除,例如快照、用户设置依赖项等。但是当我删除它后重新安装快照时,它没有下载时间,所以快照必须存储在某个地方。

如何使用所有已卸载的快照清除 snapd 的缓存?

neu*_*n24 46

您可以/var/lib/snapd/cache毫无问题地删除文件。也没有必要停止 snapd 之前。

这是在Snapcraft 论坛中回答的:

答案归结为:您不应该有很多硬链接计数为 1 的文件;默认安装中最多 5 个。如果您有更多,这是一个错误,请告诉我们。

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

这是执行此操作的命令:

sudo rm /var/lib/snapd/cache/*
Run Code Online (Sandbox Code Playgroud)

  • `sudo find /var/lib/snapd/cache/ -exec rm -v {} \;` (4认同)
  • 我必须首先使用 `sudo -i` 完全进入 sudo 模式 *** 然后 *** 它起作用了,这个简单的命令 sudo 不起作用,它说有 **“没有这样的文件或目录” ** 即使 `sudo ls /var/lib/snapd/cache/` 显示了文件......你可以使用 `logout` 退出整个 sudo 模式:) (3认同)

bjr*_*rne 29

另请注意,快照不仅会保留已删除的快照,还会保留该快照的最多 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
Run Code Online (Sandbox Code Playgroud)