Napraw „Nie można zablokować katalogu administracyjnego (/var/lib/dpkg/)” w Ubuntu
Podczas korzystania z polecenia apt-get lub stosunkowo nowego narzędzia do zarządzania pakietami APT w Ubuntu Linux lub jego pochodnych, takich jak Linux Mint (którego właściwie używam jako podstawowego systemu operacyjnego wykonując codzienną pracę), mogłeś napotkać błąd – „nie można zablokować katalogu administracyjnego (/var/lib/dpkg/) to inny proces go używający ” na wiersz poleceń.
Ten błąd może być bardzo irytujący, szczególnie dla nowych użytkowników Linuksa (Ubuntu), którzy mogą nie znać dokładnie przyczyny błędu.
Poniżej znajduje się przykład pokazujący błąd pliku blokady w Ubuntu 16.10:
tecmint@TecMint:~$ sudo apt install neofetch
[sudo] password for tecmint:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg), is another process using it?
Poniższe dane wyjściowe to kolejny możliwy przypadek tego samego błędu:
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
Jak rozwiązać powyższy błąd, jeśli wpadniesz na niego w przyszłości? Istnieje kilka sposobów radzenia sobie z tymi błędami, ale w tym przewodniku omówimy dwa najłatwiejsze i prawdopodobnie najskuteczniejsze sposoby rozwiązania tego problemu.
1. Znajdź i zabij wszystkie procesy apt-get lub apt
Uruchom poniższe polecenie, aby wygenerować listę wszystkich procesów, których nazwa składa się ze słowa apt. Otrzymasz listę zawierającą wszystkie procesy apt lub apt-get< przetwarza za pomocą poleceń ps
i grep wraz z potokiem.
ps -A | grep apt
Dla każdego procesu apt-get lub apt, który możesz zobaczyć w wynikach powyższego polecenia, zabij każdy proces za pomocą poniższego polecenia.
Proces ID (PID) znajduje się w pierwszej kolumnie powyższego zrzutu ekranu.
sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber
Na przykład w poniższym poleceniu, gdzie 9
jest numerem sygnału dla sygnału SIGKILL, pierwszy proces apt zakończy się:
sudo kill -9 13431
OR
sudo kill -SIGKILL 13431
2. Usuń pliki blokady
Plik blokady po prostu uniemożliwia dostęp do innych plików lub niektórych danych w systemie Linux. Ta koncepcja jest obecna także w Windowsie i innych systemach operacyjnych.
Po uruchomieniu polecenia apt-get lub apt plik blokady jest tworzony w dowolnym z tych katalogów /var/lib/apt/lists/, /var/lib/dpkg/ i /var/cache/apt/archives/.
Pomaga to uniknąć przerwania już uruchomionego procesu apt-get lub apt przez użytkownika lub inne procesy systemowe, które musiałyby pracować z plikami używanymi przez apt-get lub apt. Po zakończeniu wykonywania procesu plik blokady jest następnie usuwany.
Ważne: jeśli w dwóch powyższych katalogach nadal trwa zamykanie blokady i nie ma uruchomionego procesu apt-get ani apt, może to oznaczać, że proces został wstrzymany z jednego powodu lub inny, dlatego musisz usunąć pliki blokady, aby usunąć błąd.
Najpierw wykonaj poniższe polecenie, aby usunąć plik blokady z katalogu /var/lib/dpkg/
:
sudo rm /var/lib/dpkg/lock
Następnie wymuś ponowną konfigurację pakietów w następujący sposób:
sudo dpkg --configure -a
Alternatywnie usuń pliki blokady z katalogu /var/lib/apt/lists/
i pamięci podręcznej, jak poniżej:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
Następnie zaktualizuj listę źródeł pakietów w następujący sposób:
sudo apt update
OR
sudo apt-get update
Podsumowując, omówiliśmy dwie ważne metody radzenia sobie z częstym problemem, z jakim borykają się użytkownicy Ubuntu (i jego pochodnych), podczas uruchamiania apt-get lub apt, a także polecenia umiejętności.
Czy masz inne niezawodne metody udostępniania, które pomogą Ci uporać się z tym częstym błędem? Skontaktuj się z nami, korzystając z poniższego formularza opinii.
Ponadto równie dobrze możesz chcieć dowiedzieć się, jak znaleźć i zakończyć działające procesy, oraz przeczytać prosty przewodnik po poleceniach kill, pkill i killall w celu zakończenia procesu w systemie Linux.