如何配置APT延迟特定软件包的更新?
如何配置APT延迟特定软件包的更新?
嗨,我完全懂你的困扰——Opera这类第三方仓库的软件更新太频繁,每次还得下载大文件,确实挺折腾的。下面给你几个实用的APT配置方案,既能让你控制特定包的更新频率(比如每月更一次),又不影响其他软件的正常更新:
方法一:手动锁定包版本,按需更新
这个方法最简单直接,先把目标包“锁住”,不让APT自动更新它,等你想更新的时候(比如每月一次)再手动解锁更新:
- 先查看当前已安装的包版本(可选,方便后续确认):
apt show opera-stable | grep Version - 锁定包版本:
之后执行apt-mark hold opera-stableapt upgrade时,系统就会跳过这个包的更新了。 - 每月需要更新时,先解锁再更新,更新完成后重新锁定:
apt-mark unhold opera-stable apt update && apt install opera-stable -y apt-mark hold opera-stable
方法二:用APT Pinning设置优先级,仅手动触发更新
通过配置APT的优先级规则,让系统默认跳过目标包的自动更新,只有当你明确指定安装这个包时才会更新:
- 在
/etc/apt/preferences.d/目录下创建一个配置文件,比如99-opera-pin:nano /etc/apt/preferences.d/99-opera-pin - 写入以下内容(把
opera-stable换成你要控制的其他包名即可):
这里的Package: opera-stable Pin: version * Pin-Priority: 100Pin-Priority: 100表示APT只会在你主动执行apt install opera-stable时才会更新该包,日常的apt upgrade会自动忽略它。
方法三:结合Cron实现自动每月更新
如果你想让系统自动每月更新一次目标包,平时保持跳过,可以用Cron定时任务配合包锁定来实现:
- 创建一个更新脚本,比如
/usr/local/bin/monthly-opera-update.sh:nano /usr/local/bin/monthly-opera-update.sh - 写入以下内容:
#!/bin/bash # 解锁opera-stable apt-mark unhold opera-stable > /dev/null 2>&1 # 更新包 apt update > /dev/null 2>&1 apt install opera-stable -y > /dev/null 2>&1 # 重新锁定 apt-mark hold opera-stable > /dev/null 2>&1 - 给脚本添加执行权限:
chmod +x /usr/local/bin/monthly-opera-update.sh - 编辑Cron任务,设置每月执行一次:
添加一行(比如每月1号凌晨2点执行):crontab -e0 2 1 * * /usr/local/bin/monthly-opera-update.sh
以上三种方法都适用于你提到的其他闭源软件,只需要把opera-stable替换成对应的包名就行啦。
备注:内容来源于stack exchange,提问作者usilo
相关产品推荐
相关产品推荐

