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óry faktycznie używam jako mój podstawowy system operacyjny do wykonywania codziennej pracy), można było napotkać błąd – „nie można zablokować katalog administracyjny (/var/lib/dpkg/) jest inny proces z niego korzystać” w linii poleceń.
Błąd ten 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 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?
Wyjście poniżej jest inną możliwą instancją 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 możesz rozwiązać powyższy błąd w przypadku, gdy wpadniesz na niego w przyszłości? Istnieje kilka sposobów radzenia sobie z tym błędem(ami), ale w tym przewodniku przejdziemy przez dwa najłatwiejsze i prawdopodobnie najbardziej efektywne sposoby jego rozwiązania.
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 używając komend ps
i grep razem z potokiem.
$ ps -A | grep apt
Dla każdego procesu apt-get lub apt, który można zobaczyć na wyjściu powyższego polecenia, zabij każdy proces za pomocą poniższego polecenia.
Identyfikator procesu (PID) znajduje się w pierwszej kolumnie na powyższym zrzucie ekranu.
$ sudo kill -9 processnumberOR$ sudo kill -SIGKILL processnumber
Na przykład, w poleceniu poniżej, gdzie 9
jest numerem sygnału SIGKILL, zabije pierwszy proces apt:
$ sudo kill -9 13431OR$ sudo kill -SIGKILL 13431
Usuń pliki blokady
Plik blokady po prostu uniemożliwia dostęp do innego pliku(ów) lub niektórych danych w systemie Linux, ta koncepcja jest obecna w Windows i innych systemach operacyjnych, jak również.
Po uruchomieniu polecenia apt-get lub apt, plik blokady jest tworzony w którymkolwiek z tych katalogów /var/lib/apt/lists/, /var/lib/dpkg/ i /var/cache/apt/archives/.
To pomaga uniknąć przerwania procesu apt-get lub apt, który jest już uruchomiony przez użytkownika lub inne procesy systemowe, które musiałyby pracować z plikami używanymi przez apt-get lub apt. Kiedy proces zakończy się, plik blokady jest usuwany.
Ważne: W przypadku, gdy blokada jest nadal wykonywana w dwóch powyższych katalogach bez zauważalnego procesu apt-get lub apt, może to oznaczać, że proces został zatrzymany z jednego lub drugiego powodu, dlatego musisz usunąć pliki blokady, aby usunąć błąd.
Najpierw wykonaj poniższe polecenie, aby usunąć plik blokady w katalogu /var/lib/dpkg/
:
$ sudo rm /var/lib/dpkg/lock
Potem wymuś pakiet(y) do rekonfiguracji jak poniżej:
$ sudo dpkg --configure -a
Alternatywnie, usuń pliki blokady w katalogu /var/lib/apt/lists/
i cache 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 updateOR$ sudo apt-get update
Podsumowując, przeszliśmy przez dwie ważne metody radzenia sobie z częstym problemem napotykanym przez użytkowników Ubuntu (i jego pochodnych), podczas uruchamiania apt-get lub apt, a także poleceń aptitude.
Czy masz jakieś inne niezawodne metody, aby podzielić się oznaczało do czynienia z tym wspólnym błędem? Następnie skontaktuj się z nami poprzez formularz opinii poniżej.
W dodatku, możesz również dowiedzieć się, jak znaleźć i zabić uruchomione procesy i przeczytać przez prosty przewodnik do kill, pkill i killall poleceń, aby zakończyć proces w systemie Linux.
.