#Что означает ошибка
dpkg was interrupted
«dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem» появляется, когда установка или обновление пакетов было прервано: отключение питания, закрытый терминал, зависший менеджер обновлений.
Решение стандартное и безопасное, но выполнять его нужно в правильном порядке.
Прежде чем начать, убедитесь, что другой менеджер пакетов (Центр приложений, «Обновление ПО») не работает в фоне.
Прерванная установка пакетов оставила dpkg в неконсистентном состоянии. Выполните sudo dpkg --configure -a и затем apt --fix-broken install.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Прерванная установкаПитание. | Ошибка. | Завершите. |
| Блокировкаlock. | Ошибка. | Освободите. |
| Повреждён пакетФайлы. | Ошибка. | Исправьте. |
| Нет местаДиск. | Ошибка. | Освободите. |
#Пошаговое решение
- Закройте менеджеры пакетовВ Ubuntu завершите или закройте обычным способом «Обновление программ» и другие пакетные менеджеры, убедившись, что они не выполняют активную установку. Откройте терминал (Ctrl+Alt+T) и запустите
ps -ef | grep -E "[a]pt|[d]pkg". Если есть работающий процесс обновления, дождитесь его конца. Не удаляйте файлы блокировок при работающем apt; после завершения можно переходить кsudo dpkg --configure -a. - Выполните настройку пакетовЗакройте центр приложений и другие окна обновлений Ubuntu, откройте терминал Ctrl+Alt+T. Убедитесь, что прямо сейчас не выполняется другая установка:
pgrep -a -f "apt|dpkg|unattended-upgrade". Когда установка завершилась, запуститеsudo dpkg --configure -aи введите пароль. Дождитесь возврата приглашения; сообщение о неудачной настройке конкретного пакета сохраните для проверки зависимостей. Не стирайте файлы блокировок и не выключайте компьютер во время настройки. - Исправьте зависимостиВ Debian/Ubuntu выполните
sudo apt update, затемapt-mark showholdиapt-cache policy ИМЯ_ПАКЕТА, подставив имя из реальной ошибки. Перед исправлением проверьте последствия командойsudo apt -s -f install(симуляция). Если она предлагает удалить среду рабочего стола, ядро или множество важных пакетов, остановитесь. Не запускайте вслепую--forceили удаление пакетов. - Обновите системуСначала уточните дистрибутив и его текущую версию. Откройте штатный менеджер обновлений или используйте пакетный менеджер вашей системы; перед массовым обновлением на сервере сделайте резервную копию или снимок и проверьте совместимость.
- Проверьте свободное местоВ терминале выполните
df -hи посмотрите столбцы «Использовано» и «Доступно» на разделе с программой или данными. Не удаляйте неизвестные системные каталоги; сначала выясните, какие файлы занимают место. - Сначала дождитесь завершения
dpkg, потом отдельно оцените план APT в режиме симуляцииLinux · Терминал (Bash)С осторожностьюНужен sudoСначала дождитесь завершенияdpkg, потом отдельно оцените план APT в режиме симуляции. Знак&&больше не используется для безусловного исправления зависимостей.sudo dpkg --configure -asudo apt-get -s -f installКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
#Основное решение
Выполните sudo dpkg --configure -a и дождитесь завершения (может занять несколько минут; не прерывайте). Затем sudo apt --fix-broken install и sudo apt update && sudo apt upgrade. Если команда сообщает о другом процессе, дождитесь его завершения: ps aux | grep -E "apt|dpkg".
#Если команда зависает или выдаёт ошибку блокировки
Сообщение «Could not get lock /var/lib/dpkg/lock-frontend» значит, что работает другой процесс. Проверьте: sudo lsof /var/lib/dpkg/lock-frontend. Если процесса нет, а блокировка осталась, после перезагрузки удалите файлы: sudo rm /var/lib/apt/lists/lock /var/cache/apt/archives/lock /var/lib/dpkg/lock*, затем снова sudo dpkg --configure -a. Удаляйте блокировки только если уверены, что обновление не выполняется.
#Сломанный пакет
Если dpkg --configure -a падает на конкретном пакете, посмотрите сообщение. Для проблемного пакета: sudo dpkg --remove --force-remove-reinstreq пакет, затем sudo apt install --reinstall пакет. Если сбой в скрипте postinst, временно переименуйте скрипт в /var/lib/dpkg/info/пакет.postinst и повторите настройку, после чего верните имя и переустановите.
#Профилактика
Не закрывайте терминал во время apt upgrade. Для длинных обновлений на сервере используйте tmux или screen. Следите за свободным местом df -h: нехватка места на /boot — частая причина прерывания установки ядра. Очистить старые ядра: sudo apt autoremove --purge.
pgrep -a -f "apt|dpkg|unattended-upgrade"sudo dpkg --configure -asudo apt-get -s -f installКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.