#Что означает ошибка
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (unattended-upgr) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Чтобы два процесса не повредили базу пакетов, dpkg и apt используют файлы блокировки. Если один процесс работает с пакетами, второй ждёт или завершается с этой ошибкой. В сообщении часто указан номер процесса и его имя — это главная подсказка.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
Работают автоматические обновленияСлужба unattended-upgrades или «Обновление приложений» устанавливает обновления в фоне. | В сообщении указан unattended-upgr; сразу после загрузки или в ночные часы. | Подождите несколько минут, пока обновления завершатся. |
| Запущен другой apt, dpkg или менеджер пакетовВ другом терминале, Центре приложений или Synaptic идёт установка. | ps показывает процессы apt, dpkg, snap или packagekitd. | Дождитесь завершения или закройте другую программу. |
| Процесс зависУстановка не завершается долго, не используя диск и сеть. | Процесс держит блокировку десятки минут без активности. | Корректно завершите процесс (шаг 4); затем завершите прерванную установку. |
| Прерванная установкаПредыдущая установка была прервана (сбой, перезагрузка), база пакетов в неполном состоянии. | Сообщение о том, что dpkg прервана, предлагает выполнить dpkg --configure -a. | Выполните sudo dpkg --configure -a. |
| Команда запущена без sudoОбычному пользователю не разрешён доступ к каталогу блокировки. | Сообщение Permission denied вместо held by process. | Запускайте с sudo. |
#Пошаговое решение
- ПодождитеОткройте терминал Ubuntu/Debian сочетанием Ctrl+Alt+T, выполните
ps -ef | grep -E "[a]pt|[d]pkg|[u]nattended"иsudo lsof /var/lib/dpkg/lock-frontend. Если пакетный менеджер обновляет базу, дождитесь завершения; не удаляйте lock-файлы. Только после отсутствия активных процессов можно запускатьsudo dpkg --configure -a. - Определите процессВ терминале выполните
sudo lsof /var/lib/dpkg/lock-frontendи посмотрите имя процесса. Если идёт установка или обновление, дождитесь завершения. Не прерывайтеaptиdpkgкомандамиkill, пока не выяснили состояние процесса. - Восстановите прерванную настройку пакетовКогда список процессов
ps -ef | grep -E "[a]pt|[d]pkg|[u]nattended"иsudo lsof /var/lib/dpkg/lock-frontendбольше не показывает действующие установки, прочитайте последние сообщения черезsudo journalctl -u apt-daily.service -u apt-daily-upgrade.service -n 30 --no-pager. Если ранее пакеты остались нес настроенными после сбоя, отдельно выполнитеsudo dpkg --configure -aи дождитесь завершения; только после диагностики зависимостей запуститеsudo apt -s --fix-broken installдля *просмотра* плана. Если план предлагает удалить критичные компоненты, ничего не подтверждайте. Затем повторите исходную командуsudo apt updateили установки и убедитесь, что ошибка блокировки исчезла.
#Шаг 3. Поиск процессов
ps aux | grep -E "apt|dpkg|unattended" | grep -v grepsudo lsof /var/lib/dpkg/lock-frontend#Шаг 4–5. Остановка процесса и восстановление
sudo dpkg --configure -asudo apt updateКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
#Как проверить результат
- Команда
sudo apt updateвыполняется без сообщений о блокировке. sudo dpkg --auditничего не выводит (нет незавершённых пакетов).
#Если не помогло
Если процессов точно нет, а блокировка сохраняется после перезагрузки, проверьте свободное место (df -h) и состояние файловой системы. Только после этого, убедившись, что apt и dpkg не работают, удаляют файлы блокировки (/var/lib/dpkg/lock-frontend, /var/lib/dpkg/lock, /var/cache/apt/archives/lock) и выполняют sudo dpkg --configure -a.