При использовании утилиты apt для установки или обновления программного обеспечения в таких дистрибутивах как Ubuntu и Debian, в терминале можно столкнуться со следующей ошибкой: Unable to lock directory /var/lib/apt/lists.
Данная ошибка очень проста и исправить её не составит труда, но для новых пользователей она может показаться серьезным препятствием. В этой статье будет рассмотрено что означает ошибка Unable to lock directory /var/lib/apt/lists, а также как устранить эту проблему.
Содержание статьи
- Что значит эта ошибка
- Как исправить Unable to lock the administration directory /var/lib/dpkg
- Выводы
Что значит эта ошибка
В операционной системе 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/
Так же можно получить следующую ошибку:
Waiting for cache lock: Coud not get lock /var/lib/dpkg/lock-frontend. It is held by process
Если дословно перевести значение данной ошибки, то утилита сообщает что не может создать файл блокировки /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
Данная команда отобразит идентификатор процесса, выполняющего процесс apt. В приведенном выше примере идентификатор процесса - 28382.
Можно использовать идентификатор процесса, чтобы завершить его. Необходимо заменить идентификатор процесса числом, которое было получено в выводе предыдущей команды. В данном примере это число 28382. Команда будет выглядеть следующем образом:
sudo kill 28382
Далее необходимо проверить, был ли процесс остановлен, запустив команду ps aux | grep -i apt еще раз. Если процесс все еще работает, его необходимо принудительно уничтожить при помощи команды:
sudo kill -9 28382
Другой, более простой способ - использовать команду killall, она завершит все экземпляры запущенной программы. Для этого необходимо выполнить команду:
sudo killall apt apt-get
Второй способ заключается в удаление файлов блокировки. Но, прежде чем удалять данные файлы, необходимо остановить процессы, использующие файлы блокировки. Для этого необходимо выполнить одну из следующих команд ориентируясь на ту, которая вернет число:
sudo lsof /var/lib/dpkg/lock
sudo lsof /var/lib/apt/lists/lock
sudo lsof /var/cache/apt/archives/lock
Возможно, команды ничего не будут возвращать или вернут только одно число. Полученное число из вывода необходимо использовать чтобы завершить процесс (необходимо заменить 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 которая может вызвать затруднения у новых пользователей. Но теперь вы знаете почему она появляется и как с ней бороться. Если у вас остались вопросы, пишите в комментариях!
Anubis – это максимально легкое open-source решение, созданное специально для защиты небольших веб-ресурсов от бесконечного потока запросов от ботов и AI парсеров. Этот инструмент можно считать "ядерным вариантом", потому что он заставляет ботов выполнять вычисления похожие на майнинг криптовалюты. Но это неплохая альтернатива для тех, кто не может или не хочет использовать Cloudflare. Посмотреть детали












sudo fuser -cuk /var/lib/dpkg/lock - за неправильные советы можно понести уголовную ответственность у меня комп постоянно стал перезагружаться после ввода такой строки
man fuserПрежде чем выполнять советы из интернета желательно разобраться в вопросе и прочитать официальное руководство.Что нисколько не оправдывает ваших действий. И тот факт, что вместо того, чтобы исправить очевидно некорректное описание опасной для системы команды, вы выдаёте в комментариях нечто вроде "сам дурак", говорит о нижайшем уровне сознательности. Если, разумеется, целью статьи изначально не было вредительство
Хм. Действительно. Прошу прощения, исправил команду. Видимо, это баг, эта опция не должна ронять оболочку.