Snap 自动清理

Snap 自动清理

是否有snap与 Snaps 和 Apt 包等效的命令apt-get autoremoveapt-get autopurge(也可用作apt autoremove......)

更新 3:对于好奇的人以及从 Google 来到此的人来说,FlatPak 的等效命令是flatpak uninstall --unused

更新:在收到以下答复后,我想澄清一下这个问题:

Snaps 没有像 apt 这样的依赖项,因此 autoremove 的等效功能似乎没有必要。

这是不正确的。请考虑以下情况(这只是众多示例中的一个):

$ snap list 
Name               Version          Rev    Tracking         Publisher      Notes
bare               1.0              5      latest/stable    canonical✓     base
core               16-2.57.6        14399  latest/stable    canonical✓     core
core18             20221212         2667   latest/stable    canonical✓     base
core20             20221123         1738   latest/stable    canonical✓     base
$ sudo snap install nvim --classic 
nvim v0.8.1 from neovim-snap (neovim-snap) installed
$ snap list 
Name               Version          Rev    Tracking         Publisher      Notes
bare               1.0              5      latest/stable    canonical✓     base
core               16-2.57.6        14399  latest/stable    canonical✓     core
core18             20221212         2667   latest/stable    canonical✓     base
core20             20221123         1738   latest/stable    canonical✓     base
core22             20221129         444    latest/stable    canonical✓     base
nvim               v0.8.1           2775   latest/stable    neovim-snap    classic
$ sudo snap remove nvim 
nvim removed
$ snap list 
Name               Version          Rev    Tracking         Publisher      Notes
bare               1.0              5      latest/stable    canonical✓     base
core               16-2.57.6        14399  latest/stable    canonical✓     core
core18             20221212         2667   latest/stable    canonical✓     base
core20             20221123         1738   latest/stable    canonical✓     base
core22             20221129         444    latest/stable    canonical✓     base
$

安装前nvimcore22未安装。删除后,core22虽然没有安装,但仍会保留依靠现在就可以了。

更新 2:在上面的例子中,安装的依赖项core22基本快照下面是另一个示例,它表明非基础依赖项也存在同样的问题:

$ sudo snap list 
Name               Version          Rev    Tracking         Publisher      Notes
bare               1.0              5      latest/stable    canonical✓     base
core               16-2.57.6        14399  latest/stable    canonical✓     core
core18             20221212         2667   latest/stable    canonical✓     base
core20             20221123         1738   latest/stable    canonical✓     base
core22             20221129         444    latest/stable    canonical✓     base
$ sudo snap install falkon 
falkon 22.08.2 from KDE✓ installed
$ snap list 
Name                                  Version          Rev    Tracking         Publisher      Notes
bare                                  1.0              5      latest/stable    canonical✓     base
core                                  16-2.57.6        14399  latest/stable    canonical✓     core
core18                                20221212         2667   latest/stable    canonical✓     base
core20                                20221123         1738   latest/stable    canonical✓     base
core22                                20221129         444    latest/stable    canonical✓     base
falkon                                22.08.2          86     latest/stable    kde✓           -
kde-frameworks-5-98-qt-5-15-6-core20  5.98.0           9      latest/stable    kde✓           -
$ sudo snap remove falkon 
falkon removed
$ snap list 
Name                                  Version          Rev    Tracking         Publisher      Notes
bare                                  1.0              5      latest/stable    canonical✓     base
core                                  16-2.57.6        14399  latest/stable    canonical✓     core
core18                                20221212         2667   latest/stable    canonical✓     base
core20                                20221123         1738   latest/stable    canonical✓     base
core22                                20221129         444    latest/stable    canonical✓     base
kde-frameworks-5-98-qt-5-15-6-core20  5.98.0           9      latest/stable    kde✓           -
$ 

安装并删除falkonsnap 包后,未使用的依赖项kde-frameworks-5-...就被留下了。

答案1

Snap 自动清理

A经常 讨论 问题... 给出了一堆半答案。

由于 snap 没有可以就地升级的软件包系统,因此 snap 会提取软件包的依赖项,并保存 snap 的最新 n 个版本的副本

(如果您认为 Snap 将您的本地存储用作包含最后 n 个版本的镜像注册表,那么您是对的)

Snap 自动清洁的当前状态:

事实上,自 2020 年(约 3 年)以来就有一个功能提案,所以也许可以在那里传播一些选票。

Snap 清理/自动清除方法:

您可以获得最接近“自动修剪”的行为:

  • 使用自动清理脚本来删除旧版本找到这里

  • 禁用自动快照,他们的手册说明了一切:

    sudo snap set system snapshots.automatic.retention=no 将禁用它

    自动快照保留时间通过snapshots.automatic.retention系统选项配置,默认值为31天,该值需要大于24小时

    ...

    禁用自动快照不会影响预先存在的、自动生成的快照,而只会影响后续快照删除生成的快照。

  • 清理快照,有一个很好的示例脚本

没有“完全相同”的 apt(-get) 方法来使用 snap 节省更多空间,但最重要的建议包括:

  • 降低 snapd 保留的“旧版本”: sudo snap set system refresh.retain=2

    refresh.retain 值可以是 2 到 20 之间的数字。Ubuntu Core 系统上的默认值为 refresh.retain=3,经典 Ubuntu 系统(例如运行 Ubuntu 18.04 LTS(Bionic Beaver)和 Ubuntu 16.04 LTS(Xenial Xerus)的系统)上的默认值为 refresh.retain=2。

  • 清除缓存: sudo find /var/lib/snapd/cache/ -exec rm -v {} \; # Remove cache

“危险”的不动部分:使用以下方法锁定更新refresh --hold

前言:您可能会遇到过时的软件并导致安全问题,因此请小心并通过重新安装或解除锁定定期更新。

另一个问题还包括:

甚至将无人值守安装限制为 Canonical 支持的软件

出色地

目前没有找到任何方法可以做到这一点,除了“固定”(快照术语“刷新保持”)

操作方法:快速固定

  • 从 2.58+ 开始,有刷新锁保持(相当于 apt pinning)
  • 它可能针对一个或所有包裹发出,有或没有时间限制
  • snap refresh --hold“应该”锁定所有更新
  • 一个具体的例子是sudo snap refresh --hold=24h firefox

操作方法:更新 snapd“固定”软件

  • 要更新的变体 A(Firefox 示例),要么 sudo snap remove --purge firefox;sudo snap install firefox;sudo snap refresh --hold

  • 更新版本 Bsudo snap refresh --unhold firefox;sudo snap refresh firefox;sudo snap refresh --hold

答案2

查找了一段时间后,很明显目前没有等效的命令。

相关内容