Ubuntu 终于支持禁用 snap软件包自动更新


    snap 是 Canonical 为使用 Linux 内核和 systemd init 系统的操作系统开发的软件打包和部署系统。这些被称为 snap 的软件包和使用它们的工具 snapd 可以在一系列的 Linux 发行版中使用,并允许上游软件开发者直接向用户发布他们的应用程序。
    借助 snap,用户可以轻松地安装 Linux 应用程序,在默认情况下,snapd 一天内会检查四次更新,并自动将 snap 应用更新到最新的版本。虽然有很多方法可以控制更新的安装时间和频率,但为了安全用户无法完全关闭自动更新。
    虽然 snap 的初衷很好,但很多开发者都深受它的困扰,时不时就会发现常用的开发工具自动更新了,导致插件、依赖出现了不兼容的情况,不得不手动回退版本。正因如此,不少开发者在安装 Ubuntu 之后第一件做的事情就是卸载 snap。
    Canonical 今天宣布,允许用户对 snap 格式软件包执行暂时或者永久禁用自动更新。在默认情况下,snap 软件包会自动更新,以便于确保你的应用始终处于最新的状态。
    
    但由于 snap 软件包格式的自动更新模式,有时候会导致某款软件出现不兼容、无法使用的情况。好消息是虽然 Canonical 现在允许用户设置临时禁用或者永久禁用,但不支持图形化操作,需要在终端里用命令行方式执行。
    我们了解到,例如,你想要让 VLC 媒体播放器的 snap 软件包临时禁用自动更新,可以输入:
    
snap refresh --hold=72h vlc

    然后输出结果会是这样的:
    
General refreshes of "vlc" held until 2022-11-17T12:04:59Z

    如果你想要暂时禁用 snap 软件包自动更新,命令为:
    
snap refresh --hold=48h

    如果你想要永久禁用 snap 软件包自动更新,命令为:
    
snap refresh --hold

    反之,通过 --unhold 参数重新启用自动更新。
    
snap refresh --unhold

    要重新启用特定应用程序的自动更新,例如 Firefox,则在命令中添加名称即可:
    
snap refresh --unhold firefox

    该命令目前并没有出现在 Ubuntu 正式版本中,如果你想尝试的话需要通过命令将 snapd 切换到 edge 通道:
    
snap refresh snapd --edge

    测试完成后,如果需要将 snapd 切换回稳定通道,则需要使用命令:
    
snap refresh snapd --stable 

    天下苦 snap 久矣,但随着 snap 更新机制的不断完善,Ubuntu 终于增加了对禁用 snap 应用程序自动更新的支持,大家还会给 snap 一个机会吗?