@typeof

缓解 unattended-upgrade 不终止的问题

unattended-upgrade 是 Debian 和基于 Debian 的发行版的自动软件升级工具,用于后台静默安装安全更新,而默认设置下不安装功能更新。

博主的电脑关机时不时卡在 unattended-upgr ,而每次使用 Magic Sysrq 强制关机也不是长久之计,于是先分析 unattended-upgrade 在干什么:

strace 附加到 unattended-upgr 上,发现它并没有和我的预测一样阻塞在某个 IO 操作上,而是不断试图访问并不存在的 apt 源文件,在不断尝试后也没有停止运行,而是继续运行,直到阻止关机。

权宜解决办法( workaround )

解决不了问题?那就解决制造问题的程序。sudo dpkg-reconfigure unattended-upgrade直接关闭自动更新,从此这个问题不再出现。

分析

根据 Debian Wiki , 用unattended-upgrade -d 可以手动运行此程序以进行调试。
apt update 后(解决没有软件包数据库文件的问题)

ignoring ver libc6-dev=2.31-0experimental2 with priority < 0
ignoring ver libaudit1=1:3.0~alpha9-1 with priority < 0
ignoring ver g++=4:10-1 with priority < 0
ignoring ver cpp=4:10-1 with priority < 0
ignoring ver libaudit-common=1:3.0~alpha9-1 with priority < 0
ignoring ver libgnutls30=3.6.14-3 with priority < 0
ignoring ver libc-dev-bin=2.31-0experimental2 with priority < 0
ignoring ver gcc=4:10-1 with priority < 0
ignoring ver libc6=2.31-0experimental2 with priority < 0
adjusting candidate version: libpolkit-gobject-1-0=0.105-26
ignoring ver perl-base=5.32.0-2 with priority < 0
ignoring ver dbus=1.13.18-1 with priority < 0
adjusting candidate version: dbus=1.12.20-1
ignoring ver mariadb-common=1:10.4.13-1~exp1 with priority < 0
ignoring ver libselinux1=3.1~rc1-1 with priority < 0
ignoring ver libdbus-1-3=1.13.18-1 with priority < 0
adjusting candidate version: libdbus-1-3=1.12.20-1
ignoring ver libmariadb3=1:10.4.13-1~exp1 with priority < 0
ignoring ver libsepol1=3.1~rc1-1 with priority < 0
package akonadi-contacts-data upgradable but fails to be marked for upgrade (E:Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.)
sanity check failed for: set()
falling back to adjusting acct's dependencies recursively

原来是存在依赖问题,而这个依赖问题很可能是长期不更新导致的,因为博主的电脑有段时间确实在吃灰……虽然 apt 使用更智能的方式处理包依赖关系,但是也架不住长期不更新。

注:

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »