Linux apt-lock-failedСредняя

Ошибка apt-lock-failed: причины и 5 способов решения

Статья объясняет, что означает ошибка apt-lock-failed, когда она возникает, и предоставляет 5 практических способов её устранения — от простого ожидания до принудительного завершения процессов. Вы научитесь безопасно разблокировать менеджер пакетов APT.

Обновлено 16 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Debian 11/12Ubuntu 20.04/22.04/24.04Linux Mint 21/22any APT-based distro

Что означает ошибка apt-lock-failed

Ошибка E: Could not get lock /var/lib/dpkg/lock или E: Unable to acquire the dpkg frontend lock означает, что менеджер пакетов APT (и его низкоуровневый компонент dpkg) не может получить доступ к своим критическим файлам, потому что они уже заблокированы другим процессом.

Это системная защита от одновременного изменения базы пакетов, которое могло бы её повредить. Ошибка появляется при попытке выполнить любую команду, меняющую состояние системы: apt install, apt update, apt upgrade, apt remove, dpkg -i и т.д.

Типичный полный текст:

E: Could not get lock /var/lib/dpkg/lock. It is held by process 1234 (apt)
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (apt)

Причины возникновения

  1. Активный процесс APT/dpkg в другом терминале. Вы запустили установку/обновление в одном окне терминала и пытаетесь запустить другую apt-команду параллельно.
  2. Автоматический фоновый процесс. Службы вроде unattended-upgrades (автоматические обновления) или apt-daily.service могут работать в фоне.
  3. «Зависший» или аварийно завершённый процесс. Предыдущая сессия apt/dpkg была прервана (например, через Ctrl+C или сбой системы), но lock-файл остался.
  4. Недостаток прав. Попытка выполнить apt-команду без sudo может иногда приводить к странным ошибкам доступа, хотя обычно ошибка другая.
  5. Проблемы с файловой системой. В редких случаях — повреждение inode или монтирование tmpfs с нехваткой места.

Способ 1: Просто подождите (рекомендуемый первый шаг)

Чаще всего блокировка временная. Фоновый процесс обновлений (особенно в Ubuntu/Debian) может работать 5-15 минут.

Что делать:

  1. Подождите 2-3 минуты.
  2. Попробуйте команду снова.
  3. Если не помогает, проверьте, что именно запущено (см. Способ 2).

💡 Совет: Можно добавить параметр ожидания к команде, чтобы APT сам ждал освобождения блокировки:
sudo apt-get -o DPkg::Lock::Timeout=60 update (ждёт 60 секунд).

Способ 2: Найдите и завершите процесс-владелец lock-файла

Это основной и самый безопасный метод, если вы уверены, что фоновый процесс не выполняет критическую операцию.

Шаги:

  1. Найдите PID (идентификатор процесса), удерживающий блокировку:
    sudo lsof /var/lib/dpkg/lock
    

    Или более универсально (покажет и lock-frontend):
    sudo lsof /var/lib/dpkg/lock-frontend
    

    Пример вывода:
    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    apt     1234 root    3uW  REG    8,2        0 12345 /var/lib/dpkg/lock-frontend
    

    Здесь PID = 1234.
  2. Оцените процесс. Если в выводе COMMAND указан apt, apt-get, aptitude, dpkg, unattended-upgr — это действительно процесс APT.
  3. Безопасно завершите процесс:
    sudo kill -9 1234
    

    Используйте -9 (SIGKILL) только если обычный kill 1234 (SIGTERM) не сработал.
  4. Убедитесь, что процесс остановился:
    ps aux | grep -E "(apt|dpkg)" | grep -v grep
    

    Вывод должен быть пустым.
  5. Удалите lock-файлы (см. Способ 3).

Способ 3: Принудительное удаление lock-файлов (только после завершения процессов!)

ВАЖНО: Выполняйте этот шаг только после того, как вы убедились (Способ 2), что никакой процесс APT не работает. Удаление lock-файла у работающего процесса приведёт к серьёзному повреждению базы пакетов, потребующему восстановления.

Команда для удаления всех стандартных lock-файлов APT:

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

Флаг -f игнорирует отсутствие файлов.

Способ 4: Восстановите состояние dpkg после сбоя

Если ошибка возникла после принудительного завершения (например, Ctrl+C) установки пакета, база dpkg может находиться в «полузавершённом» состоянии.

Выполните:

sudo dpkg --configure -a

Эта команда завершит настройку всех пакетов, установка которых была прервана. После её успешного завершения обычные apt-команды должны заработать.

Способ 5: Перезагрузка системы (крайняя мера)

Если предыдущие методы не помогают, а вы не можете определить процесс (например, в Docker-контейнере или минимальной системе), проще всего перезагрузить компьютер.

sudo reboot

После перезагрузки все процессы будут завершены, и lock-файлы очищены ядром. Используйте этот способ, если не уверены в своих действиях.

Профилактика ошибки apt-lock-failed

  1. Избегайте параллельных установок. Не запускайте apt install в нескольких терминалах одновременно.
  2. Используйте таймаут ожидания. Добавляйте -o DPkg::Lock::Timeout=60 к командам, чтобы APT ждал, а не падал с ошибкой.
    sudo apt-get -o DPkg::Lock::Timeout=60 update
    
  3. Отключите автоматические обновления (если они мешают), если вы управляете сервером вручную. Для Ubuntu/Debian:
    sudo systemctl stop unattended-upgrades
    sudo systemctl disable unattended-upgrades
    
  4. Регулярно проверяйте системные логи на предмет ошибок dpkg/apt: sudo journalctl -u apt-daily.service -b.
  5. Не прерывайте (Ctrl+C) процессы apt и dpkg без крайней необходимости. Лучше дать им завершиться.

Часто задаваемые вопросы

Что такое lock-файл в APT и зачем он нужен?
Можно ли просто удалить lock-файл? Это безопасно?
Как предотвратить появление ошибки в будущем?

Полезное

Определите, какой процесс удерживает блокировку
Завершите проблемный процесс (если это безопасно)
Удалите lock-файл (если процесс завершён)
Перезапустите конфигурацию dpkg (если нужно)
Повторите исходную apt-команду

Эта статья помогла вам решить проблему?