Weboldal keresés

A "Nem lehet zárolni az adminisztrációs könyvtárat (/var/lib/dpkg/)" javítás az Ubuntuban


Az apt-get parancs vagy a viszonylag új APT csomagkezelő eszköz használata közben az Ubuntu Linuxban vagy annak származékaiban, például a Linux Mintben (amelyet tulajdonképpen elsődleges operációs rendszerként használok napi munkát végez), előfordulhat, hogy a hibaüzenetet tapasztalta – „nem tudja zárolni az adminisztrációs könyvtárat (/var/lib/dpkg/), egy másik folyamat használja ezt a parancssort.

Ez a hiba különösen bosszantó lehet az új Linux (Ubuntu) felhasználók számára, akik esetleg nem tudják pontosan a hiba okát.

Az alábbiakban egy példa látható az Ubuntu 16.10 zárfájl-hibájára:

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?

Az alábbi kimenet ugyanennek a hibának egy másik lehetséges példánya:

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?

Hogyan lehet megoldani a fenti hibát, ha a jövőben beleütközik? A hiba(ok) kezelésének többféle módja van, de ebben az útmutatóban a megoldás két legegyszerűbb és valószínűleg leghatékonyabb módját fogjuk áttekinteni.

1. Keresse meg és ölje meg az összes apt-get vagy apt folyamatot

Futtassa az alábbi parancsot, hogy létrehozzon egy listát azokról a folyamatokról, amelyek neve az apt szóból áll. Ekkor megjelenik egy lista, amely tartalmazza az összes apt vagy apt-get< elemet. folyamatokat a ps és grep parancsok és egy folyamat segítségével.

ps -A | grep apt

Minden egyes apt-get vagy apt folyamatnál, amelyet a fenti parancs kimenetében láthat, állítsa le az egyes folyamatokat az alábbi paranccsal.

A folyamat azonosítója (PID) a fenti képernyőkép első oszlopában található.

sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber

Például az alábbi parancsban, ahol a 9 a SIGKILL jel jelszáma, leállítja az első apt folyamatot:

sudo kill -9 13431
OR
sudo kill -SIGKILL 13431

2. Törölje a zárolási fájlokat

A zárolási fájl egyszerűen megakadályozza a hozzáférést egy másik fájl(ok)hoz vagy bizonyos adatokhoz a Linux rendszeren. Ez a fogalom a Windowsban és más operációs rendszerekben is megtalálható.

Az apt-get vagy az apt parancs futtatása után egy zárfájl jön létre a /var/lib/apt/lists/ könyvtárban. , /var/lib/dpkg/ és /var/cache/apt/archives/.

Ez segít elkerülni, hogy a már futó apt-get vagy apt folyamatot akár egy felhasználó, akár más olyan rendszerfolyamatok megszakítsák, amelyeknek működniük kell az általa használt fájlokkal. apt-get vagy apt. Amikor a folyamat befejeződött, a zárfájl törlődik.

Fontos: Ha a zárolás továbbra is kilép a fenti két könyvtárból anélkül, hogy észrevehető apt-get vagy apt folyamat futna, ez azt jelentheti, hogy a folyamatot egy okból felfüggesztették vagy a másik, ezért törölnie kell a zárolási fájlokat a hiba törléséhez.

Először hajtsa végre az alábbi parancsot a zárfájl eltávolításához a /var/lib/dpkg/ könyvtárban:

sudo rm /var/lib/dpkg/lock

Utána kényszerítse a csomag(oka)t az újrakonfigurálásra, így:

sudo dpkg --configure -a

Alternatív megoldásként törölje a zárfájlokat a /var/lib/apt/lists/ és a gyorsítótár könyvtárában az alábbiak szerint:

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

Ezután frissítse a csomagforrások listáját az alábbiak szerint:

sudo apt update
OR
sudo apt-get update

Összefoglalva, két fontos módszert mutattunk be az Ubuntu (és származékai) felhasználók által tapasztalt gyakori probléma megoldására, miközben az apt-get vagy az apt, valamint a alkalmassági parancsok.

Van más megbízható módszere ennek a gyakori hibának a kezelésére? Ezután vegye fel velünk a kapcsolatot az alábbi visszajelzési űrlapon keresztül.

Ezenkívül érdemes megtanulnia, hogyan találhat meg és hogyan lehet leállítani a futó folyamatokat, és olvassa el a kill, pkill és killall parancsok egyszerű útmutatóját a folyamatok leállításához Linuxban.