是否可以在 snap 中禁用自动刷新?这关联表示 Snaps 每天都会在后台自动更新到最新版本。有些 snap(例如 vlc)是每天构建的,因此每天都安装它们是没有意义的。
答案1
有几个选项,取决于您到底想要什么。
更新破坏了我的应用程序!
运行snap revert package-name
可返回该应用程序的上一个版本。您将一直使用该版本,直到发布该应用程序的下一个版本。如果下一个版本也出现问题,您可以snap revert
再次运行。
我想继续使用旧版本的应用程序
snap store 中的许多软件都使用轨道适用于主要软件版本。大多数 snap 默认使用轨道latest/stable
,一旦应用程序发布,它将为您提供最新的更新,但用户可以选择不同的轨道以坚持使用特定版本。
例如,对于 CLion IDE,您可以通过运行 查看支持的轨道snap info clion
。您可以通过运行 切换到其他轨道snap refresh clion --channel=2020.2/stable
。您将一直停留在该轨道上,直到您手动切换到其他轨道。您仍将获得应用程序的自动更新,但根据您选择的轨道,您将仅获得该特定版本软件的次要更新。
发布者决定是否在他们的快照中启用曲目,因此如果您喜欢的快照没有您需要的版本的曲目,请务必联系发布者!
我想保留所有更新,直到我的重要演讲结束
“保留”选项正是您所需要的。您指定一个确切的日期,快照将保留所有更新,直到该日期。例如,这将保留接下来 30 天的更新。
snap refresh --hold=<duration> <snap1> <snap2>
- 如果您未指定快照,它将应用于整个系统
--hold=forever
如果您想无限期地禁用更新,请使用。
我不希望它在工作日更新
在这种情况下,您可能想要更改刷新计时器。例如,以下选项将刷新计时器设置为每月最后一个星期六,即从 23:00 到第二天 1:00。
sudo snap set system refresh.timer=sat5,23:00-01:00
您可以使用 CLI 工具或 snap 商店查看哪些更新可用。
我想在支付下载带宽时禁用更新
默认情况下,当 NetworkManager 检测到计量连接(例如 LTE/3G/4G)时,Snap 将不会更新。如果 NetworkManager 未正确检测到,您可以手动设置。
我想在应用程序运行时禁用更新。
这是一个实验性功能,您可以通过运行以下命令来启用它:
snap set core experimental.refresh-app-awareness=true
有关详细信息,请参阅For more info, see快速刷新感知和更新抑制
我想做点别的事!
查看控制更新文档以获取更多选项。
答案2
在撰写本文时,这还是不可能的(官方),这引起了很大轰动辩论. 控制桌面更新的更好方法是仍在讨论中。
解决方案 1
在您的文件中阻止商店/etc/hosts/
:
127.0.0.1 api.snapcraft.io
对我来说sudo nano /etc/hosts
,有效的方法是复制粘贴该行,然后按 F2,然后按 Y,然后按 ENTER。
解决方案 2
如果网络连接是计量的,则禁用自动更新。
首先,转到您的网络设置。
然后,单击两个网络接口右侧的齿轮并勾选“限制后台数据使用” - 这标志着该连接正在计量。
最后,打开终端并输入(文档):
sudo snap set system refresh.metered=hold
答案3
停止(将在启动时重新启动),然后禁用snapd
守护进程:
sudo systemctl stop snapd.service
sudo systemctl mask snapd.service
注(systemctl
):mask
是 的强化版本disable
。
要重新启用并刷新:
sudo systemctl unmask snapd.service
sudo systemctl start snapd.service
sudo snap refresh
refresh
将刷新系统中的所有快照。
这是更好的答案比这里给出的任何答案都多。出于某种原因,那个问题被标记为重复,并指向这个问题 :)。
答案4
刷新服务由 systemd 启动,并在以下位置配置:
- /lib/systemd/system/snapd.refresh.service
- /lib/systemd/system/snapd.refresh.timer
如果您想禁用自动刷新,请覆盖 /etc/systemd 中的配置。最简单的方法可能是将计时器设置为您喜欢的频率。