Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Could-Not-Get-Lock-Dpkg Linux / DevOps

Ошибка 'Could not get lock /var/lib/dpkg/lock': как снять блокировку APT в Ubuntu

Обновлено: 27.08.2026 · Официальная документация ↗

Почему возникает ошибка блокировки пакетного менеджера APT

При попытке установить программу (sudo apt install ...) или обновить систему терминал выдает ошибку: 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?.

Причина ошибки

В операционных системах Debian и Ubuntu пакетный менеджер dpkg защищен от одновременного запуска двух процессов установки, чтобы исключить повреждение системных файлов. Ошибка означает, что прямо сейчас установкой занята другая программа: идет фоновое автообновление безопасности (unattended-upgrades) или предыдущая установка была аварийно прервана закрытием терминала.

Пошаговое снятие блокировок без повреждения базы пакетов

Шаг 1: Правильный способ — Дождаться завершения автообновления

В 90% случаев блокировку держит системная служба unattended-upgrades, которая ставит свежие патчи безопасности сразу после включения сервера. Подождите 1–2 минуты и повторите команду apt.

Шаг 2: Поиск процесса, удерживающего блокировку

Если блокировка висит часами, найдем точный PID зависшего процесса:

sudo lsof /var/lib/dpkg/lock-frontend
sudo lsof /var/lib/apt/lists/lock

Шаг 3: Корректное завершение зависшего процесса

Мягко остановите найденный процесс по его номеру PID (замените 1234 на ваш реальный номер):

sudo kill -15 1234

Если процесс не реагирует в течение 10 секунд — уничтожьте его принудительно: sudo kill -9 1234.

Шаг 4: Ручное удаление «мертвых» lock-файлов

Если процессы завершены, но lock-файлы остались на диске, удалите файлы блокировок:

sudo rm /var/lib/apt/lists/lock
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/cache/apt/archives/lock

Шаг 5: Восстановление целостности базы пакетов dpkg

Обязательно восстановите незавершенные настройки прерванных пакетов:

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

Типовые ошибки администраторов

  • Удаление lock-файлов во время РЕАЛЬНОЙ установки пакетов: Если удалить lock-файл, пока система распаковывает ядро Linux, и запустить второй apt, база пакетов dpkg status будет повреждена (Broken Database). Всегда проверяйте процессы через lsof перед удалением файлов!
  • Перезагрузка сервера кнопкой Reset: Прерывание работы dpkg жестким выключением питания приводит к появлению наполовину установленных пакетов.
База данных dpkg повреждена, и apt выдает критические ошибки зависимостей?
Специалисты ITSTM оперативно восстановят целостность структуры пакетов из резервных копий журнала status-old без переустановки операционной системы.
💡 Практика специалистов: Если скрипт автоматизации Ansible падает из-за блокировок apt, добавьте в playbook директиву ожидания: 'register: apt_res \n until: apt_res is success \n retries: 30 \n delay: 10'. Это научит сценарий автоматически ждать освобождения замка dpkg.

Частые вопросы (FAQ)

Как отключить автоматическое фоновое обновление unattended-upgrades?

Выполните команду переконфигурации: sudo dpkg-reconfigure -plow unattended-upgrades и выберите 'No' (Нет).

Что делать, если команда dpkg --configure -a зависает на вопросе конфигурации?

Программа ждет ответа от пользователя. Нажмите Enter, чтобы согласиться с установкой версии по умолчанию, или клавишу Tab для выбора кнопки 'OK' в диалоговом окне.

Безопасно ли удалять файлы из папки /var/lib/dpkg/?

Удалять можно ТОЛЬКО файлы с именем 'lock' и 'lock-frontend'. Удаление других служебных файлов (status, info) сломает систему управления пакетами.

Почему ошибка блокировки возникает сразу после старта виртуальной машины в облаке?

При первой загрузке облачный агент Cloud-Init автоматически запускает apt update для первоначальной инициализации сервера.

Полезные материалы
Рекомендуем