Исправляем ошибку «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock»

Довольно часто пользователи сталкиваются с ошибкой "Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock". В этой короткой статье я расскажу как быстро и легко починить эту ошибку без перезагрузки системы.

 Статьи   Время чтения: 4 минуты   Просмотров: 12

Исправляем ошибку «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock»

Довольно часто пользователи сталкиваются с ошибкой "Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock". В этой короткой статье я расскажу как быстро и легко починить эту ошибку без перезагрузки системы.

Коротко об ошибке и почему она возникает.

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



Либо при обновлении системы можно натолкнуться на ошибку следующего вида:

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

Исправляем ошибку «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock»


Такое происходит в момент установки (обновлении) программ / пакетов в разных приложениях одновременно.

К примеру, у вас открыт synaptic, Центр приложений Ubuntu, Gdebi, терминал и тд. Также, вы могли запустить установку приложений в нескольких вкладках терминала одновременно. В общем, в каком-то из приложений параллельно идет установка и ожидается ваше решение.

В этом случае, достаточно просто закрыть такое параллельное приложение, которое устанавливает новую программу (обновляет пакеты и тд). И ошибка пройдет.
Но данная ошибка может случиться, если установка приложения остановилась аварийно.


В этом случае, у вас dpkg висит в фоне и созданы lock файлы.
Можно сделать перезагрузку системы и ошибка пройдет, но это не всегда удобно делать (по ряду причин).

Давайте решим эту проблему с помощью терминальной утилиты fuser.



Утилита fuser показывает какие процессы используют файл (подробнее её разберем в одной из будущих статей серии про терминал).
Сейчас же скажу, что флаг -v показывает какие процессы используют переданный адрес на файл. Посмотрим в нашем случае:

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

Исправляем ошибку «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock»


По выводу в терминале видно, что dpkg использует этот файл.

Флаг -k аналогичен команде kill в терминале. То есть, данной командой мы удалим все процессы, которые используют данный файл блокировки.
И укажем флаг -i, который означает интерактивность, то есть будет показан диалог, завершить ли процесс.

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



В терминале нужно нажать y, чтобы подтвердить действия для каждого процесса:

Исправляем ошибку «Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock»



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

sudo dpkg --configure -a



Если после этих действий ошибка осталась, то удалите ещё файл блокировки:

sudo rm /var/lib/dpkg/lock



После чего снова выполняем:

sudo dpkg --configure -a

Вместо /var/lib/dpkg/lock вы можете подставить /var/lib/apt/lists/lock и выполнить те же самые команды.



P.S.


В крайнем случае, если лень делать удаление файлов блокировки и завершение процессов, то просто перезагрузите компьютер. После перезагрузки скорее всего придется выполнить команду (если установка какого-то приложения не была завершена до конца):

sudo dpkg --configure -a



Вот и всё.



Автор: Google
Источник: blanet.ru

Последние страницы

Copyright © 2022 Blanet.Ru. Все права защищены.