E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
#Что случилось
Менеджер dpkg отмечает пакеты, у которых распаковка или настройка не завершились. После сбоя питания, закрытия терминала во время apt upgrade, нехватки места или обрыва сети в базе остаются записи о полуустановленных пакетах, и все следующие операции с apt прерываются этим сообщением. Это обычно легко исправляется.
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Ошибка сценария пакета (post-install)Скрипт завершается с кодом ошибки. | dpkg --configure -a останавливается на одном пакете. | Посмотрите сообщение; можно переустановить: sudo apt install --reinstall имя. |
| Нет места на дискеРаздел полон. | Ошибки записи. | Освободите место (sudo apt autoremove --purge, очистка логов sudo journalctl --vacuum-size=200M). |
| Повреждён архив пакетаНедокачан файл. | Ошибка распаковки. | sudo apt clean и повторная загрузка. |
| Блокировка занятаЗапущено автоматическое обновление. | Ошибка Could not get lock. | Подождите завершения процесса. |
| Пакет не удаляетсяСценарий удаления ломается. | Пакет остаётся в состоянии iF. | Удалите принудительно: sudo dpkg --remove --force-remove-reinstreq имя. |
| Ядро не доустановилосьПрервана сборка initramfs. | Проблемы при загрузке. | После исправления sudo update-initramfs -u -k all. |
#Порядок действий
- Убедитесь, что apt и dpkg не запущеныОткройте терминал Kali и выполните
ps -ef | grep -E "[a]pt|[d]pkg", чтобы увидеть процессы пакетного менеджера. Если активное обновление действительно работает, дождитесь завершения, не удаляя файлы блокировок. Если процессов нет и последняя установка была прервана, переходите кsudo dpkg --configure -a. На удалённом сервере по SSH перед длительным обновлением убедитесь в стабильном соединении и резервной копии. - Завершите настройку пакетовВ Kali откройте терминал (Ctrl+Alt+T), закройте Synaptic и другие установки. Убедитесь, что
aptиdpkgне выполняются (pgrep -a -f "apt|dpkg"), после чего запуститеsudo dpkg --configure -a. Эта команда продолжит незаконченные настройки. Дождитесь завершения; при ошибке сохраните имя пакета и первую строкуerror. Не стирайте файлы блокировок и не перезагружайте систему во время записи пакетов. - Исправьте зависимостиВ Debian/Ubuntu выполните
sudo apt update, затемapt-mark showholdиapt-cache policy ИМЯ_ПАКЕТА, подставив имя из реальной ошибки. Перед исправлением проверьте последствия командойsudo apt -s -f install(симуляция). Если она предлагает удалить среду рабочего стола, ядро или множество важных пакетов, остановитесь. Не запускайте вслепую--forceили удаление пакетов. - Обновите системуДля Debian/Ubuntu сначала
sudo apt updateиsudo apt -s upgrade(последнее — только просмотр предлагаемых изменений). Для Fedora используйтеsudo dnf upgrade --refresh, для Archsudo pacman -Syu; выбирайте только команду своего дистрибутива, не выполняйте их все подряд. На сервере прежде обеспечьте резервную копию и доступ на случай неудачной загрузки. Если менеджер предлагает удалить важные пакеты, остановитесь. - Проверьте место на дискеВ терминале выполните
df -hи посмотрите столбцы «Использовано» и «Доступно» на разделе с программой или данными. Не удаляйте неизвестные системные каталоги; сначала выясните, какие файлы занимают место. - Очистите кэшВ Linux откройте «Терминал» (в большинстве настольных сред Ctrl+Alt+T); на удалённом сервере войдите по SSH только при наличии прав администратора и запасного доступа. Сначала выполните команды диагностики в блоке ниже и проверьте вывод. Перед командами, изменяющими загрузчик, сеть или файлы, сохраните копию данных и убедитесь, что выбран нужный диск/раздел.
- Повторите попытку установкиКогда
sudo dpkg --configure -aиsudo apt-get -f installзавершились без ошибок, повторите только исходную команду установки нужного пакета. Если ошибка вернулась, запишите первую содержательную строку сообщения и проверьтеdf -h / /varи доступные репозитории. Не повторяйте установку бесконечно и не удаляйте вручную блокировки apt при работающем менеджере пакетов. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Если не получается
Если после этого apt всё равно не работает, сохраните вывод dpkg --audit и последние строки /var/log/dpkg.log — по ним видно, на каком пакете остановился процесс, и этот пакет можно переустановить отдельно.