Linux dpkg-lockСредняя

Ошибка блокировки пакетов Ubuntu: как разблокировать apt/dpkg

Ошибка блокировки пакетов в Ubuntu возникает, когда другой процесс использует базу данных пакетов. В этой статье вы узнаете, как быстро разблокировать менеджер пакетов и продолжить работу.

Обновлено 17 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04 LTSUbuntu 22.04 LTSUbuntu 24.04 LTS

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

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

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

Или:

E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

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

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

Ошибка блокировки возникает по следующим причинам:

  1. Фоновое автоматическое обновление — служба unattended-upgrades может запускать apt в фоне для установки обновлений безопасности.
  2. Другой запущенный процесс apt/dpkg — например, вы открыли Software Updater или другой терминал с командой apt, и они конфликтуют.
  3. Некорректное завершение предыдущей операции — если предыдущая установка пакета была прервана (например, из-за закрытия терминала), файл блокировки мог остаться.
  4. Ручной запуск скриптов — пользовательские скрипты или сторонние программы могут использовать dpkg напрямую.
  5. Вirus-образное ПО — редкие случаи, когда вредоносное ПО блокирует системные файлы.

Способ 1: Быстрое решение: удаление файла блокировки

Этот способ подходит, если вы уверены, что никакой процесс не использует менеджер пакетов (например, вы сами запустили команду в двух терминалах).

  1. Найдите процесс, удерживающий блокировку
    Выполните одну из команд:
    sudo lsof /var/lib/dpkg/lock-frontend
    

    Или:
    sudo fuser -v /var/lib/dpkg/lock-frontend
    

    Если команда ничего не выводит, проверьте другие файлы блокировки:
    sudo lsof /var/lib/dpkg/lock
    sudo lsof /var/lib/apt/lists/lock
    sudo lsof /var/cache/apt/archives/lock
    

    В выводе вы увидите PID (идентификатор процесса) и имя процесса (например, apt или apt-get).
  2. Завершите найденный процесс
    Замените <PID> на полученный номер:
    sudo kill -9 <PID>
    

    Если процессов несколько, завершите все. Можно использовать sudo killall apt или sudo pkill apt, но будьте осторожны: это завершит все процессы apt.
  3. Удалите файлы блокировки
    После завершения процесса удалите все возможные файлы блокировки:
    sudo rm -f /var/lib/dpkg/lock-frontend
    sudo rm -f /var/lib/dpkg/lock
    sudo rm -f /var/lib/apt/lists/lock
    sudo rm -f /var/cache/apt/archives/lock
    

    Флаг -f suppresses ошибок, если файла нет.
  4. Перезапустите менеджер пакетов
    Обновите список пакетов и попробуйте выполнить нужную операцию:
    sudo apt update
    sudo apt upgrade   # или sudo apt install <пакет>
    

Способ 2: Перезагрузка системы

Если вы не хотите вручную искать и завершать процессы, простая перезагрузка системы решит проблему в большинстве случаев. При перезагрузке все процессы завершаются, а файлы блокировки освобождаются (если они не были оставлены из-за некорректного завершения).

  1. Выполните:
    sudo reboot
    
  2. После загрузки системы попробуйте снова запустить команду apt.
    Примечание: Если ошибка повторяется после перезагрузки, значит, файл блокировки остался на диске (например, из-за прерванной операции). В этом случае вернитесь к Способу 1 и удалите файл вручную.

Способ 3: Восстановление прерванной операции с dpkg --configure -a

Если блокировка возникла из-за прерванной установки пакета (например, вы закрыли терминал во время apt upgrade), система может оставаться в состоянии "не завершённой настройки". Это может привести к блокировке.

  1. Запустите команду восстановления:
    sudo dpkg --configure -a
    
    Она попытается завершить настройку всех пакетов, которые были в процессе установки.
  2. После завершения обновите кэш и попробуйте снова:
    sudo apt update
    sudo apt upgrade
    
    Если команда dpkg --configure -a не помогает или выдает ошибку блокировки, используйте Способ 1 для удаления файла блокировки.

Профилактика

Чтобы минимизировать риск блокировки пакетов:

  • Не запускайте несколько терминалов с apt одновременно. Даже в одном терминале избегайте параллельных команд (например, не открывайте новый apt upgrade, пока первый не завершится).
  • Используйте apt вместо прямого вызова dpkg. apt автоматически обрабатывает блокировки и зависимости.
  • Настройте автоматические обновления на удобное время. Редактируйте /etc/apt/apt.conf.d/20auto-updates или /etc/apt/apt.conf.d/10periodic, чтобы фоновые обновления не мешали вашей работе.
  • Регулярно обновляйте систему. Длительные операции обновления (особенно при больших изменениях) повышают вероятность конфликта.
  • Проверяйте процессы перед критическими операциями. Если вы планируете массовую установку, выполните ps aux | grep apt для уверенности, что других процессов нет.
  • Избегайте принудительного завершения (kill -9) процессов apt, если это возможно. Дайте им завершиться естественно.

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

Почему появляется ошибка блокировки пакетов в Ubuntu?
Как безопасно удалить файл блокировки?
Можно ли отключить автоматические обновления, чтобы избежать блокировки?
Что делать, если блокировка не снимается после удаления файла?

Полезное

Определите процесс, удерживающий блокировку
Завершите конфликтующий процесс
Удалите файл блокировки
Перезапустите менеджер пакетов

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