如何阻止OpenJDK Snap包自动更新以保留指定版本?
解决OpenJDK Snap自动更新阻止失败的问题
报错原因
你使用的snap set openjdk refresh.metered=hold命令需要目标Snap包提供configure钩子,但OpenJDK的Snap包并未实现该钩子,因此执行失败。针对这类不支持配置钩子的Snap,需使用Snap官方通用的刷新锁定机制。
正确阻止自动更新的方法
1. 锁定单个OpenJDK Snap的自动刷新
执行以下命令永久阻止OpenJDK Snap的自动更新:
snap refresh --hold=forever openjdk
若仅需临时锁定(例如30天),可替换参数为具体时长:
snap refresh --hold=30d openjdk
2. 验证锁定状态
执行以下命令查看OpenJDK的刷新锁定状态:
snap info openjdk
在输出的refresh-hold字段中可查看当前锁定配置。
3. 恢复自动更新(如需)
当需要重新允许OpenJDK自动更新时,执行:
snap refresh --unhold openjdk
配合版本固定的完整流程
如果你已将OpenJDK切换到指定版本(例如11.0.19+7),需确保版本锁定和刷新锁定同时生效:
- 切换到指定版本:
snap switch openjdk --channel=11/stable
(根据需求替换通道或版本号)
2. 执行前文的刷新锁定命令,阻止后续自动更新。
内容的提问来源于stack exchange,提问作者Dr. Jedi
相关产品推荐
相关产品推荐

