Главная >> Система >> Ошибка Unable to lock the administration directory /var/lib/dpkg

Ошибка Unable to lock the administration directory /var/lib/dpkg

При использовании утилиты apt для установки или обновления программного обеспечения в таких дистрибутивах как Ubuntu и Debian, в терминале можно столкнуться со следующей ошибкой: Unable to lock directory /var/lib/apt/lists.

Данная ошибка очень проста и исправить её не составит труда, но для новых пользователей она может показаться серьезным препятствием. В этой статье будет рассмотрено что означает ошибка Unable to lock directory /var/lib/apt/lists, а также как устранить эту проблему.


Содержание статьи

Что значит эта ошибка

В операционной системе Ubuntu 20.04 получить данную ошибку можно при выполнении таких команд как apt update, apt upgrade или apt install. А полный текст ошибки выглядит вот так:

  • E: Could not get lock /var/lib/apt/lists/lock. It is held by process 4746 (aptd)
  • N: Be aware that removing the lock file is not a solution and may break your system.
  • E: Unable to lock directory /var/lib/apt/lists/

+4Aiimq4DRChTSGuwHFptUC9OIpQlziCQToL72KlV6k6QBljZVy0y+22ikK+tQW9vvEmLIkKhS7vGlWghuKaq6kE7QTyDeBcq8gAXtQhI2vDwtf9fiOlmthf57eIAAAAASUVORK5CYII=

Так же можно получить следующую ошибку:

Waiting for cache lock: Coud not get lock /var/lib/dpkg/lock-frontend. It is held by process

H4oxCOrfBiCDAAAAAElFTkSuQmCC

Если дословно перевести значение данной ошибки, то утилита сообщает что не может создать файл блокировки /var/lib/apt/lists/lock далее утилита спрашивает нет ли уже запущенного второго экземпляра программы apt, который уже создал этот файл и сейчас работает с данной директорией.

Как правило данная ошибка появляется из-за того, что уже запущен другой экземпляр программы apt который или обновляет пакеты операционной системы или устанавливает какие-либо программы. Когда команда apt или графическое приложение для обновления системы обновляют систему или устанавливают новое программное обеспечение, они блокируют файл dpkg (менеджер пакетов в операционных системах семейства Debian).

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

Также данная ошибка может возникать при выполнении автоматических обновлений. За данную опцию отвечает пакет под именем unattended-upgrades который как правило присутствует в большинстве дистрибутивов по умолчанию и запускается автоматически при загрузке операционной системы.

Как исправить Unable to lock the administration directory /var/lib/dpkg

Существует несколько способов решения данной проблемы. Рассмотрим все возможные варианты. Первый способ этой найти запущенный процесс apt и завершить его. Для этого сначала необходимо выполнить команду в терминале:

ps aux | grep -i apt

wUNlY9w71jrdAAAAABJRU5ErkJggg==

Данная команда отобразит идентификатор процесса, выполняющего процесс apt. В приведенном выше примере идентификатор процесса - 28382.

Можно использовать идентификатор процесса, чтобы завершить его. Необходимо заменить идентификатор процесса числом, которое было получено в выводе предыдущей команды. В данном примере это число 28382. Команда будет выглядеть следующем образом:

sudo kill 28382

8ADtRPMkzRN3oAAAAASUVORK5CYII=

Далее необходимо проверить, был ли процесс остановлен, запустив команду ps aux | grep -i apt еще раз. Если процесс все еще работает, его необходимо принудительно уничтожить при помощи команды:

sudo kill -9 28382

Другой, более простой способ - использовать команду killall, она завершит все экземпляры запущенной программы. Для этого необходимо выполнить команду:

sudo killall apt apt-get

Второй способ заключается в удаление файлов блокировки. Но, прежде чем удалять данные файлы, необходимо остановить процессы, использующие файлы блокировки. Для этого необходимо выполнить одну из следующих команд ориентируясь на ту, которая вернет число:

sudo lsof /var/lib/dpkg/lock

i+UEBtfbyLgAAAAASUVORK5CYII=

sudo lsof /var/lib/apt/lists/lock

BS3sns9MmrM8X9h+TQih+ClzgXnLJUCW5uistRohdlDdogDPdkHA81tbIelROGuQo8mZNupEo6YSOdToaFsZTsNkgYjPYHkAmI68JeYTFS6MwV3rAlJaXsfWCnm0MFiuP5MNNxqIwjuMrnM5pCcYCQw0U0C8OJsFYYOoMzy7lvWGjPtSkMk2OjgKWS7jxPmvtoGJ024l4RKTqf+v8DnMpr3Ma4HjcAAAAASUVORK5CYII=

sudo lsof /var/cache/apt/archives/lock

D48MZhsz9y01AAAAAElFTkSuQmCC

Возможно, команды ничего не будут возвращать или вернут только одно число. Полученное число из вывода необходимо использовать чтобы завершить процесс (необходимо заменить process_id числом, полученным из приведенных выше команд):

sudo kill -9 process_id

И только после этого можно безопасно удалить файлы блокировки, используя следующие команды:

sudo rm /var/lib/apt/lists/lock

sudo rm /var/cache/apt/archives/lock

sudo rm /var/lib/dpkg/lock

После удаления файлов блокировки необходимо переконфигурировать пакеты при помощи команды:

sudo dpkg --configure -a

Выводы

В данной статье были рассмотрены два способа решения ошибки Unable to lock directory /var/lib/apt/lists которая может вызвать затруднения у новых пользователей. Но теперь вы знаете почему она появляется и как с ней бороться. Если у вас остались вопросы, пишите в комментариях!

Оставьте свой Email для того чтобы получать анонсы новых статей и полезную информацию о Linux по электронной почте


Pеклама
Посмотреть детали

Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали

4 комментария к “Ошибка Unable to lock the administration directory /var/lib/dpkg”

  1. sudo fuser -cuk /var/lib/dpkg/lock - за неправильные советы можно понести уголовную ответственность у меня комп постоянно стал перезагружаться после ввода такой строки

    Ответить
    • man fuser Прежде чем выполнять советы из интернета желательно разобраться в вопросе и прочитать официальное руководство.

      Ответить
  2. Что нисколько не оправдывает ваших действий. И тот факт, что вместо того, чтобы исправить очевидно некорректное описание опасной для системы команды, вы выдаёте в комментариях нечто вроде "сам дурак", говорит о нижайшем уровне сознательности. Если, разумеется, целью статьи изначально не было вредительство

    Ответить

Оставьте комментарий