我如何才能拒绝自动安装推荐的快照?

我如何才能拒绝自动安装推荐的快照?

我正在使用APT::Install-Recommends "false"in/etc/apt/apt.conf来限制我的机器只能运行我特意安装的软件。我以后仍然可以自由地接受此类建议。

这种机制似乎不适用于快照。在无人值守更新期间安装了,openprinting/cupsbrlin/hunspell-dictionaries-1-7-2004对于任何其他已安装的 snap 来说,这两者都不是必需的,而且这两者都未经授权。

我想防止这种情况再次发生。如果有必要,甚至将无人值守安装限制为 Canonical 支持的软件,当请求的更新在这种政策下无法实现时抛出错误。我有什么选择?

答案1

Snap 保留|刷新|固定|自动移除

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

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

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

Snap 自动清洁的当前状态:

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

Snap CleanUp/AutoPurge 方法:

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

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

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

    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, sudo snap refresh --hold,
  • 变体 B 更新sudo snap refresh --unhold firefox, sudo snap refresh firefox,sudo snap refresh --hold

相关内容