如何识别我不再需要的系统上的快照?

DK *_*ose 5 snap

操作系统:Ubuntu 20.04

以下是snap list新安装的 Ubuntu 20.04的输出:

$ snap list
Name                             Version             Rev   Tracking         Publisher   Notes
core18                           20200311            1705  latest/stable    canonical?  base
gnome-3-34-1804                  0+git.2c86692       27    latest/stable/…  canonical?  -
gtk-common-themes                0.1-36-gc75f853     1506  latest/stable/…  canonical?  -
snap-store                       3.36.0-74-ga164ec9  433   latest/stable/…  canonical?  -
snapd                            2.44.3              7264  latest/stable    canonical?  snapd
$
Run Code Online (Sandbox Code Playgroud)

这是我在安装各种快照(并删除一些)后看到的:

$ snap list
Name                             Version                     Rev   Tracking         Publisher   Notes
core                             16-2.44.3                   9066  latest/stable    canonical?  core
core18 •                         20200427                    1754  latest/stable    canonical?  base
firefox *                        77.0b2-1                    358   latest/beta      mozilla?    -
gnome-3-28-1804                  3.28.0-16-g27c9498.27c9498  116   latest/stable    canonical?  -
gnome-3-34-1804 •                0+git.2c86692               27    latest/stable/…  canonical?  -
gnome-system-monitor *           3.32.0-27-g32ed970e06       135   latest/stable    canonical?  -
gtk-common-themes •              0.1-36-gc75f853             1506  latest/stable/…  canonical?  -
kanagram *                       20.04.0                     51    latest/stable    kde?        -
kcolorchooser *                  20.04.0                     57    latest/stable    kde?        -
kde-frameworks-5                 5.47.0                      27    latest/stable    kde?        -
kde-frameworks-5-core18          5.61.0                      32    latest/stable    kde?        -
kde-frameworks-5-qt-5-14-core18  5.68.0                      4     latest/stable    kde?        -
kolourpaint *                    20.04.0                     56    latest/stable    kde?        -
ksnip *                          1.7.0                       46    latest/edge      dporobic    -
okular *                         20.04.0                     98    latest/stable    kde?        -
snap-store •                     3.36.0-74-ga164ec9          433   latest/stable/…  canonical?  -
snapd •                          2.44.3                      7264  latest/stable    canonical?  snapd
$
Run Code Online (Sandbox Code Playgroud)

为了方便讨论,我们打电话

  • 五个原始快照(在其名称旁边标记)“系统快照”
  • 故意安装的快照(*在他们的名字旁边标记)“主要快照”
  • 和其他快照“支持快照”
    • gnome-3-28-1804
    • kde-frameworks-5
    • kde-frameworks-5-core18
    • kde-frameworks-5-qt-5-14-core18

鉴于系统存储了一个快照和至少两个修订版,并且一些支持快照可能有几百 MB ( ls -lh /var/lib/snapd/snaps),如果主快照已经被删除,那么了解哪些次要快照可以被删除是值得的.

但是如何将支持快照“映射”到主要快照?

就我而言,我可以运行snap connections okularkde-frameworks-5-qt-5-14-core18由于sudo snap install okular.

snap connections …只有在仍然安装了相关的 snap 时才有效。我已经安装,但然后取出falkonfeatherpadkcalckonversationpalapeli,和稳定版ksnip

是否有与安装和删除类似于/var/log/dpkg.log或 的快照相关的日志文件/var/log/apt/history.log

如果没有,还有什么方法可以知道是否仍然需要“支持”快照?


一个相关但未回答的问题在这里:如何列出手动安装的快照并删除不再需要的自动安装的快照?

moo*_*765 14

检查snap.yaml所有已安装快照的文件可以帮助我们了解需要哪些“支持”快照:

例子:

~$ grep "default-provider:" /snap/*/*/meta/snap.yaml
/snap/snap-store/415/meta/snap.yaml:    default-provider: gnome-3-28-1804
/snap/snap-store/415/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/snap-store/415/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/snap-store/415/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/snap-store/current/meta/snap.yaml:    default-provider: gnome-3-28-1804
/snap/snap-store/current/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/snap-store/current/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/snap-store/current/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/wire/132/meta/snap.yaml:    default-provider: gnome-3-28-1804
/snap/wire/132/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/wire/132/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/wire/132/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/wire/current/meta/snap.yaml:    default-provider: gnome-3-28-1804
/snap/wire/current/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/wire/current/meta/snap.yaml:    default-provider: gtk-common-themes
/snap/wire/current/meta/snap.yaml:    default-provider: gtk-common-themes
Run Code Online (Sandbox Code Playgroud)
~$ grep "base:" /snap/*/*/meta/snap.yaml
/snap/gnome-3-28-1804/116/meta/snap.yaml:base: core18
/snap/gnome-3-28-1804/current/meta/snap.yaml:base: core18
/snap/gtk-common-themes/1506/meta/snap.yaml:base: core18
/snap/gtk-common-themes/current/meta/snap.yaml:base: core18
/snap/snap-store/415/meta/snap.yaml:base: core18
/snap/snap-store/current/meta/snap.yaml:base: core18
/snap/wire/132/meta/snap.yaml:base: core18
/snap/wire/current/meta/snap.yaml:base: core18
Run Code Online (Sandbox Code Playgroud)

如果已安装的快照没有出现在输出的右侧,则没有其他快照依赖于它,并且可以删除该快照。当然,您手动安装的快照不会出现在输出的右侧,通常没有其他快照依赖于它们,这是您想要保留的快照。


snap.yaml如果我们仅检查快照当前活动版本的文件,我们可以使输出更短:

grep "default-provider:" /snap/*/current/meta/snap.yaml
grep "base:" /snap/*/current/meta/snap.yaml
Run Code Online (Sandbox Code Playgroud)

如果您安装第一个快照,就会安装一个快照,该快照名为snapd. snapd上述命令提供的列表中未引用该快照。根据https://snapcraft.io/snapd 的说法,安装、配置、刷新和删除快照包需要此快照。只要您安装了任何卡扣,此卡扣就不可移除:

~$ snap remove snapd
error: cannot remove "snapd": snap "snapd" is not removable: remove all other snaps first
Run Code Online (Sandbox Code Playgroud)