snap 是 Canonical 为使用 Linux 内核和 systemd init 系统的操作系统开发的软件打包和部署系统。这些被称为 snap 的软件包和使用它们的工具 snapd 可以在一系列的 Linux 发行版中使用,并允许上游软件开发者直接向用户发布他们的应用程序。
借助 snap,用户可以轻松地安装 Linux 应用程序,在默认情况下,snapd 一天内会检查四次更新,并自动将 snap 应用更新到最新的版本。虽然有很多方法可以控制更新的安装时间和频率,但为了安全用户无法完全关闭自动更新。
虽然 snap 的初衷很好,但很多开发者都深受它的困扰,时不时就会发现常用的开发工具自动更新了,导致插件、依赖出现了不兼容的情况,不得不手动回退版本。正因如此,不少开发者在安装 Ubuntu 之后第一件做的事情就是卸载 snap。
近日,Ubuntu 通过官方博客宣布,一项开发者期待已久的功能悄悄地进入了预览阶段,从现在起你可以完全关闭 snap 的自动更新了:
snap refresh --hold
命令保持或推迟单个 snap 应用或系统上所有 snap 应用的更新,可以是无限期的,也可以是指定时间段的。(目前只在edge
通道的snapd
中可用)
该功能是通过使用 snap refresh
命令的一个新的 --hold
参数完成的。
snap refresh --hold firefox
snap refresh --hold=24h firefox
snap refresh --hold
--unhold
参数重新启用自动更新。
snap refresh --unhold
snap refresh --unhold firefox
该命令目前并没有出现在 Ubuntu 正式版本中,如果你想尝试的话需要通过命令将 snapd 切换到 edge 通道:
snap refresh snapd --edge
测试完成后,如果需要将 snapd 切换回稳定通道,则需要使用命令:
snap refresh snapd --stable
天下苦 snap 久矣,但随着 snap 更新机制的不断完善,Ubuntu 终于增加了对禁用 snap 应用程序自动更新的支持,大家还会给 snap 一个机会吗?
(文/开源中国)