Решение проблемы «E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock» в Kali Linux


Иногда при использовании менеджера пакетов apt для установки программы или обновления пакетов, возникает ошибка:

E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock - open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?

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

Причина ошибки в том, что apt уже работает в фоне — скорее всего, просто скачивает пакеты обновлений, поскольку по умолчанию apt не устанавливает обновления самостоятельно.

Для других дистрибутивов это вызывает временное неудобство, поскольку нужно подождать, когда apt завершит свои фоновые задачи. Если нужно скачать много пакетов, а Интернет-соединение медленное, то придётся довольно долго ждать. Для Kali Linux, специализированного дистрибутива, такое поведение может для некоторых быть вообще неприемлемым. Кстати, авторы Kali Linux утверждают, что по умолчанию сетевые службы отключены. Тем не менее apt всё равно может автоматически скачивать обновления в фоне, когда вы об этом не подозреваете.

Дело в том, что, например, окружение рабочего стола (GNOME) могут запускать apt в фоне. Я, вроде бы, нашёл все настройки, после отключения которых apt уже никогда не будет ничего загружать без вашего ведома. Если после их применения у вас всё равно возникла ошибка «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock - open (11: Ресурс временно недоступен)», пишите в комментариях — будем копать ещё глубже.


Итак, начинаем с самого очевидного, отключаем скачивание обновлений по расписанию. Проверить, включены ли какие-либо автоматические обновления, можно командой:

systemctl list-unit-files | grep enabled | grep apt

Для их отключения:

sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl disable apt-daily.timer

Теперь отключаем Unattended (самостоятельные) обновления, для этого откройте файл файл /etc/apt/apt.conf.d/20auto-upgrades

sudo gedit /etc/apt/apt.conf.d/20auto-upgrades

в нём имеются следующие строки:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Первая отвечает за обновление списка пакетов, а вторая – за обновления самих пакетов в системе. Вместо единиц впишете нули.

Теперь проверьте, настроен ли GNOME делать автоматические обновления:

gsettings get org.gnome.software download-updates

Если будет выведено true, значит да, графическая оболочка также в фоне скачивает обновления.

Чтобы это отключить выполните:

sudo gsettings set org.gnome.software download-updates false

Чуть более подробно на эту тему я писал в статье Как правильно и навсегда исправить ошибку «E: Не удалось получить доступ к файлу блокировки /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)».

Аварийное завершение работы во время обновления системы или установки программ

Если рассматриваемая ошибка была вызвана тем, что система была выключена во время обновления, то для её исправления нужно выполнить:

sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend

Скорее всего, чтобы вновь появилась возможность использовать apt понадобиться выполнить следующую команду, для исправления проблем:

sudo dpkg --configure -a

Рекомендуется Вам:

11 комментариев to Решение проблемы «E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock» в Kali Linux

  1. Григорий:

    спасибо ! помогло очень

  2. игорь:

    igor@kali:~$ /etc/apt/apt.conf.d/20auto-upgrades
    bash: /etc/apt/apt.conf.d/20auto-upgrades: Нет такого файла или каталога
    Что делать с этим

    • Alexey:

      Ничего не делать. В последних Kali Linux всё отключено по умолчанию.

  3. Вася:

    Здравия. Вначале обрадовался, два автообновления отключило, два таймера. А поом попробовал - всё равно ошибку пишет /var/lib/dpkg/lock-frontend-open (13: Отказано в доступе). По всему списку прошёлся пару раз с правами, но - увы. Вам, думаю, всё уже известно по эой ошибке. Надоели, думаю. Потратьте, пожалуйста, немного времени на мою проблему, подскажите - что и как сделать.

    • Alexey:

      Приветствую! Когда я писал эту статью, то действительно постоянно натыкался на эту ошибку. Но в последние месяцы на новых версиях Kali Linux я с этой ошибкой больше не сталкивался, хотя использую её только в виртуальном компьютере. На основном компьютере у меня Arch Linux там такой проблемы нет в принципе — работает ровно то, что я сам запустил.

      В следующий раз в момент, когда столкнётесь с этой ошибкой, сразу выполните такую команду:

      lsof /usr/bin/apt

      Возможно, она покажет, через какую команду был запущен процесс apt.

      Кстати, какое у вас окружение рабочего стола? GNOME или что-то ещё? Какая версия Kali Linux?

      Если команда lsof /usr/bin/apt не поможет и если у вас последняя версия Kali Linux, то тогда вам нужно писать о проблеме в официальном багтрекере Kali Linux.

  4. Akhmad:

    kali@kali:~$ apt update
    Чтение списков пакетов… Готово
    E: Не удалось открыть файл блокировки /var/lib/apt/lists/lock - open (13: Отказано в доступе)
    E: Невозможно заблокировать каталог /var/lib/apt/lists/
    W: Проблема при удалении файла /var/cache/apt/pkgcache.bin - RemoveCaches (13: Отказано в доступе)
    W: Проблема при удалении файла /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Отказано в доступе)

  5. Христина:

    Огромное спасибо за помощь, сработало!

  6. MASHRAB:

    404  Not Found [IP: 192.99.200.113 80]
    Чтение списков пакетов… Готово            
    E: Репозиторий «http://http.kali.org/kali sana Release» не содержит файла Release.
    N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён.
    N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8).

     

  7. Василий Пупкин:

    Спасибо, это помогло.

Добавить комментарий для Григорий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *