Устранение ошибки в Linux «Could not get lock /var/lib/dpkg/lock»
Часто при запуске программы Linux apt или apt-get выходит ошибка в терминале:
E: Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable)
Формулировка ошибки и путь к lock-файлу могут отличаться в зависимости от конкретного случая, но если речь идет о невозможности заблокировать файл dpkg, все они будут устраняться схожими методами.
По сути, ошибка связана с тем, что файл менеджера пакетов dpkg уже заблокирован — то есть, уже выполняется какой-то процесс, который его использует, или выполнение процесса было завершено некорректно.
В первую очередь рекомендуем подождать несколько минут и попробовать запустить apt снова. Вполне возможно, что выполняемый процесс через пару минут автоматически завершится, и вы сможете продолжить работу.
Если же проблема сохраняется, ее можно решить следующими способами.
Способ 1. Завершить процесс принудительно
Команда, чтобы найти все запущенные экземпляры утилиты apt:
ps aux | grep -i apt
В выводе отобразятся активные процессы, а также их ID (второй столбец).
Если в выводе будет apt.systemd.daily update, рекомендуем не завершать такой процесс. Это утилита автоматической проверки и установки обновлений — просто дождитесь завершения ее работы.
Чтобы завершить ненужный процесс воспользуйтесь командой:
sudo kill -9 ID_процесса
Еще вариант — завершить процессы утилит apt и apt-get сразу, не проверяя конкретные процессы. Это можно делается командой:
sudo killall apt apt-get
Способ 2. Удалить файлы блокировки
Если способ 1 не помог, скорее всего, проблема связана не с активными процессами apt или apt-get, а с некорректным завершением одного из процессов ранее.
Сначала воспользуемся командой lsof, чтобы посмотреть, каким процессом используется lock-файл.
Последовательно выполните команды:
sudo lsof /var/lib/dpkg/lock sudo lsof /var/lib/dpkg/lock-frontend sudo lsof /var/lib/apt/lists/lock sudo lsof /var/cache/apt/archives/lock
Указанная команда может не выдать ничего или выдать одно или несколько чисел — это ID процессов. Завершите их, указывая полученные ID:
sudo kill -9 ID_процесса
Затем удалите lock-файлы:
sudo rm /var/lib/dpkg/lock sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock
При удалении указанных файлов могут появиться ошибки вида «Нет такого файла или каталога» — данные ошибки просто проигнорируйте.
Рекомендуется переконфигурировать пакеты с помощью команды:
sudo dpkg --configure -a
Выполните попытку запустить apt или apt-get — все должно работать корректно.
0