一句话原则

apt 只是“指挥”,真正干活的是 dpkg,出问题多半在 dpkg 或磁盘


一、第一步:看 apt 当时到底报了什么错

看这个日志 👇(首选)

/var/log/apt/term.log

作用

  • 记录 apt install 时终端的完整输出

  • 能知道是:

    • 依赖冲突

    • dpkg 出错

    • 脚本执行失败

常用看法

tail -n 200 /var/log/apt/term.log
grep -i error /var/log/apt/term.log

二、第二步:确认什么时候开始出问题

看这个日志 👇

/var/log/apt/history.log

作用

  • 只记录 时间 + 操作

  • 用来判断:

    • 是哪次 install / upgrade 之后坏的

    • 是否与系统异常重启相关


三、第三步:重点排查 dpkg(真正的问题来源)

看这个日志 👇(核心)

/var/log/dpkg.log

作用

  • 记录包的真实安装过程

  • 所有:

    • 解包失败

    • 文件写入失败

    • 半安装状态
      都在这里

常用看法

grep -i error /var/log/dpkg.log
grep 包名 /var/log/dpkg.log

📌 如果看到:

  • No such file or directory

  • Read-only file system

  • cannot copy

那问题已经不是 apt 了


四、第四步:检查包有没有“装一半”

dpkg -l | grep ^.[^i]

重点关注

状态

含义

iF

安装失败

iU

解包未配置

rc

删了但留残余

📌 这些包基本都会导致 apt 反复失败


五、第五步:apt 卡死 / 锁异常才看这里

journalctl -xe
journalctl -u apt-daily
journalctl -u apt-daily-upgrade

作用

  • 看有没有:

    • 磁盘 I/O 错误

    • 文件系统被挂只读

    • 系统强行中断 apt


六、常用修复前的标准动作

sudo dpkg --configure -a
sudo apt -f install

📌 这两步失败 → 回头继续看 dpkg.log


七、最常见结论(经验总结)

  • apt 显示装了 ≠ 文件真的在

  • 服务起不来 ≠ 配置错了

  • 多数问题:
    👉 dpkg 没装完
    👉 磁盘/文件系统异常


八、记住这 4 句话就够了

apt 报错看 term.log
什么时候坏的看 history.log
真正原因看 dpkg.log
系统层问题看 journalctl