Fix 'E: Грешка при заключване / var / lib / dpkg / lock' в Ubuntu

Наскоро се опитвах да инсталирам приложение, използвайки командата apt в Ubuntu, когато срещнах следната грешка:

E: не може да се заключи / var / lib / dpkg / lock - отворен (11: ресурсът временно е недостъпен)

E: Не може да се заключи администриращата директория (/ var / lib / dpkg /), използва ли го друг процес?

Всъщност има подобна грешка, която може да видите:

E: Не може да се заключи / var / lib / apt / lists / lock - open (11: ресурсът временно е недостъпен)

E: Не може да се заключи директорията / var / lib / apt / lists /

E: не може да се заключи / var / lib / dpkg / lock - отворен (11: ресурсът временно е недостъпен)

E: Не може да се заключи администриращата директория (/ var / lib / dpkg /), използва ли го друг процес?

И двете от тези грешки са много сходни с друга обща Ubuntu грешка Не може да се заключи директорията / var / cache / apt / archives / и интересното е, че поправките за всички тези грешки също са подобни.

Метод 1: Поправяне Невъзможност за заключване на администраторската директория (/ var / lib / dpkg /)

Може да има много причини, поради които виждате тази грешка. Първата и най-очевидна причина може да бъде, че някой друг процес използва APT инструмента за управление на пакети (apt или apt-get команда с други думи). Проверете дали Ubuntu Software Center или Synaptic Package Manager работи или не.

Можете също да използвате командния ред на Linux, за да намерите и убиете изпълнения процес. За да направите това, използвайте командата по-долу:

 ps aux | grep -i apt 

Това ще ви покаже идентификатора на процеса, изпълняван apt или apt-get. В примера по-долу идентификаторът на процеса е 7343. Можете да игнорирате последния ред, съдържащ 'grep –color = auto'.

Можете да използвате този идентификатор на процеса, за да го убиете:

 Судо убие -9 

Друг по-лесен начин е да се използва команда killall. Това ще убие всички копия на работеща програма.

 sudo killall apt apt-get 

Следвайте ни за по-полезни Linux уроци :)

Следвайте ни във Facebook 114.3K Последователи Следвайте ни в Twitter 9.1K последователи Следвайте ни в YouTube 24.6K последователи

Метод 2: По-нататъшно фиксиране Невъзможно е да се заключи административната директория (/ var / lib / dpkg /) грешка

Обикновено това би решило проблема за вас в повечето случаи. Но случаят ми беше малко по-различен. Актуализирах системата си и случайно затворих терминала. Поради тази причина не е имало процеси, изпълнявани ап, но все още ми показа грешката.

В този случай основната причина е заключващият файл. Заключващите файлове се използват за предотвратяване на използването на едни и същи данни от два или повече процеса. Когато apt или apt-command се изпълняват, той създава заключващи файлове на няколко места. Когато предишната команда apt не е била прекратена правилно, заключващите файлове не са били изтрити и следователно предотвратяват всякакви нови екземпляри на apt / apt-get команди.

За да разрешите проблема, трябва само да премахнете заключващите файлове. Но преди да направите това, би било добра идея да спрете всеки процес, който използва заключващите файлове.

Използвайте командата lsof, за да получите идентификатор на процеса на процеса, съдържащ заключващите файлове. Стартирайте тези команди един по един.

 lsof / var / lib / dpkg / lock

lsof / var / lib / apt / lists / lock

lsof / var / cache / apt / archives / lock

Възможно е командите да не върнат нищо или да върнат само един номер. Ако те върнат поне един номер, използвайте номера (ите) и убийте процесите като този. Заменете PID с номерата, които сте получили от горните команди:

 sudo убие -9 PID 

Сега можете безопасно да премахнете заключващите файлове, като използвате командите по-долу:

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

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

sudo rm / var / lib / dpkg / lock

След това преконфигурирайте пакетите

 sudo dpkg --configure -a 

Сега, ако стартирате командата sudo apt update, всичко трябва да е наред.

Отстраняване на неизправности: dpkg: error: dpkg frontend е заключен от друг процес

Ако видите грешка “dpkg frontend е заключена от друг процес”, докато изпълнявате описания по-горе метод, ще трябва да направите допълнителна стъпка.

Първо разберете идентификатора на процеса, който държи файла за заключване.

 lsof / var / lib / dpkg / lock-frontend 

Горната команда ще ви даде PID на процесите, използвайки заключващите файлове. Използвайте този PID, за да убиете процеса.

 sudo убие -9 PID 

Сега можете да премахнете заключването и да преконфигурирате dpkg:

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

sudo dpkg --configure -a

Надявам се, че този малък съвет ви помогна да поправите грешката „Не може да се заключи / var / lib / dpkg / lock“. Ако имате въпроси или предложения, моля не се колебайте да оставите коментар.

Препоръчано

Двигателят на Microsoft Edge за JavaScript е отворен код
2019
Върнете стария си компютър обратно в живота с 4MLinux
2019
Fix Невъзможност за влизане в Ubuntu след надстройка
2019