Как исправить `Не удалось получить блокировку /var/lib/dpkg/lock - открыто (11 Ресурс временно недоступен)` Ошибки

Как исправить `Не удалось получить блокировку /var/lib/dpkg/lock — открыто (11 Ресурс временно недоступен)` Ошибки

В последнее время я получаю много ошибок «Could not get lock /var/lib/dpkg/lock», когда «Could not get lock /var/lib/dpkg/lock — open (11 Resource temporarily unavailable)» пытаюсь установить или обновить пакеты из командной строки в Ubuntu, поэтому я решил написать статью о том, как можно избавиться от таких проблем.

Вот полное сообщение об ошибке:

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

Для более новых версий Ubuntu это сообщение изменилось, и теперь оно показывает, какой процесс удерживает «/var/lib/dpkg/lock-frontend», примерно вот так:

Ожидание блокировки кэша: Не удалось получить блокировку /var/lib/dpkg/lock-frontend. Она удерживается процессом 251486 (apt).

Как и говорится в сообщении, это может произойти, если другой процесс использует /var/lib/dpkg/lock. Поэтому первое что нужно сделать, если вы столкнулись с этой ошибкой, это убедиться, что вы закрыли менеджеры пакетов, такие как Synaptic и т.д. Также проверьте, нет ли у вас других открытых терминалов, которые в данный момент выполняют процедуру установки / обновления, и дождитесь завершения этих процессов.

Если вы используете более новую версию Ubuntu, сообщение само подскажет вам, какой процесс удерживает «/var/lib/dpkg/lock» / «/var/lib/dpkg/lock-frontend».

Если ни один процесс не использует /var/lib/dpkg/lock, следующим шагом будет… ожидание. В некоторых случаях этого достаточно для устранения ошибок «Could not get lock /var/lib/dpkg/lock» и «Could not get lock /var/lib/dpkg/lock-frontend».

Другой потенциальный способ обойти эту проблему — перезагрузить систему и посмотреть, будет ли она по-прежнему возникать.

Однако бывают случаи, когда вышеупомянутых решений может быть недостаточно. Для таких случаев вот что вы можете сделать.

Используйте это только в том случае, если ничто другое не помогло! Использование приведенных ниже команд может привести к поломке пакетов / повреждению. Используйте их на свой страх и риск!

Если ничего не помогло (по моему опыту, это обычно происходит, если система была принудительно выключена или перезагружена во время установки или обновления пакетов, например, из-за отключения электричества), вы можете удалить файл apt lock/lock-frontend и посмотреть, устранит ли это проблему на вашей системе Ubuntu / Debian / Linux Mint (и любой системе, использующей APT):

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

Если вы все еще получаете ошибки о блокировке кэша apt (/var/cache/apt/archives/lock) или блокировке dpkg (/var/lib/dpkg/lock), вы можете удалить их:

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

После этого может потребоваться переконфигурация пакетов, а также исправление любых потенциально неработающих пакетов:

sudo dpkg --configure -a
sudo apt install -f

В некоторых редких случаях после попытки запустить sudo dpkg —configure -a вы можете увидеть ошибку, подобную приведенной ниже:

$ sudo dpkg —configure -a
dpkg: error: parsing file ‘/var/lib/dpkg/updates/0004’ near line 0:
newline in field name ‘#padding’

В таких случаях удалите ошибочный файл, а затем снова запустите команду sudo dpkg —configure -a. В моем примере файл /var/lib/dpkg/updates/0004 (в вашем случае он может быть другим!), поэтому для его удаления и повторной настройки dpkg нужно использовать:

sudo rm /var/lib/dpkg/updates/0004
sudo dpkg --configure -a

Надеюсь, после выполнения этих команд вы перестанете получать ошибки «Could not get lock /var/lib/dpkg/lock — open (11 Resource temporarily unavailable)» и «Could not get lock /var/lib/dpkg/lock-frontend — open (11 Resource temporarily unavailable)».

Прочтите:  Список вещей, которые нужно сделать после установки Ubuntu 22.04 LTS

Но если и это не помогло, можно попробовать ввести в терминале следующую команду

sudo fuser -vki /var/lib/dpkg/lock

или

sudo fuser -vki /var/lib/dpkg/lock-frontend

Обычно, мне это помогает.

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

Надеюсь статья была полезной? И если это так, не забудьте поделиться ею в социальных сетях.

Оцените?
+1
0
+1
0
+1
2
+1
0
+1
2
+1
0
+1
8
Поделитесь с друзьями
Admin
Admin

Люблю Linux

Статей: 474
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии