树莓派Bookworm中Bash脚本自动化APT升级时处理交互式提示
解决APT升级时自动处理配置文件交互提示的问题
在无人值守的cron任务中,APT弹出的"Modified configuration file"交互提示会中断脚本执行,你可以直接通过APT和dpkg的内置参数来自动处理这类场景,无需识别提示内容。
核心解决方案
修改apt upgrade命令,添加非交互模式环境变量和dpkg配置选项,让系统自动保留你修改过的配置文件,仅在配置未被修改时自动更新:
sudo DEBIAN_FRONTEND=noninteractive apt -y --option Dpkg::Options::="--force-confdef" --option Dpkg::Options::="--force-confold" upgrade
参数说明
DEBIAN_FRONTEND=noninteractive:强制APT进入非交互模式,彻底禁用所有交互式提示--force-confdef:如果配置文件是系统默认状态(未被用户修改),自动使用更新后的新配置文件--force-confold:如果配置文件已被用户修改,保留现有版本,不被新文件覆盖
修改后的完整脚本
sudo apt -y update read -t 600 -p "Pausing 10 minutes between Update and Upgrade" sudo DEBIAN_FRONTEND=noninteractive apt -y --option Dpkg::Options::="--force-confdef" --option Dpkg::Options::="--force-confold" upgrade read -t 600 -p "Pausing 10 minutes between Upgrade and AutoRemove" sudo apt -y autoremove
额外说明
apt autoremove一般不会触发配置文件提示,所以无需额外参数;如果担心,也可以给它加上同样的环境变量和选项- 如果你需要强制替换所有配置文件(不推荐,可能丢失自定义设置),可以把
--force-confold换成--force-confnew
内容的提问来源于stack exchange,提问作者Chiwda
相关产品推荐
相关产品推荐

