“Az adminisztrációs könyvtár (/var/lib/dpkg/) zárolása nem lehetséges” hiba javítása 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 én a napi munkámhoz elsődleges operációs rendszerként használok), előfordulhatott, hogy a parancssorban a következő hibával találkozott: “az adminisztrációs könyvtár (/var/lib/dpkg/) zárolása nem lehetséges, mert egy másik folyamat használja”.

Ez a hiba nagyon bosszantó lehet, különösen 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, amely a lock file hibát mutatja az Ubuntu 16-ban.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?

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

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 belebotlik? Többféleképpen is kezelhető ez(ek) a hiba, de ebben az útmutatóban a két legegyszerűbb és valószínűleg leghatékonyabb megoldási módot fogjuk végigvenni.

Megtalálni és megölni az összes apt-get vagy apt folyamatot

Futtassa az alábbi parancsot az összes olyan folyamat listájának létrehozásához, amelynek neve az apt szót tartalmazza, az összes apt vagy apt-get folyamatot tartalmazó listát kapja a ps és grep parancsok használatával együtt egy csővezetékkel.

$ ps -A | grep apt
Apt és apt-get folyamatok keresése

Minden egyes apt-get vagy apt folyamathoz, amelyet a fenti parancs kimenetén láthat, az alábbi parancs segítségével végezze el az egyes folyamatokat.

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

$ sudo kill -9 processnumberOR$ sudo kill -SIGKILL processnumber

Az alábbi parancsban például, ahol a 9 a SIGKILL jel száma, megöli az első apt folyamatot:

$ sudo kill -9 13431OR$ sudo kill -SIGKILL 13431

Delete the lock Files

A lock fájl egyszerűen megakadályozza a hozzáférést egy másik fájl(ok)hoz vagy bizonyos adatokhoz a Linux rendszerben, ez a koncepció a Windows és más operációs rendszerekben is jelen van.

Az apt-get vagy apt parancs futtatása után egy lock fájl jön létre a /var/lib/apt/lists/, /var/lib/dpkg/ és /var/cache/apt/archives/ könyvtárak bármelyikében.

Ez segít elkerülni, hogy a már futó apt-get vagy apt folyamatot megszakítsa akár egy felhasználó, akár más rendszerfolyamat, amelynek az apt-get vagy apt által használt fájlokkal kellene dolgoznia. Amikor a folyamat befejezte a végrehajtást, a lock fájl törlésre kerül.

Fontos: Ha a fenti két könyvtárban még mindig kilép egy lock, anélkül, hogy észrevehető apt-get vagy apt folyamat futna, ez azt jelentheti, hogy a folyamatot valamilyen okból visszatartották, ezért törölni kell a lock fájlokat, hogy a hiba megszűnjön.

Először is hajtsa végre az alábbi parancsot a /var/lib/dpkg/ könyvtárban lévő lock fájl eltávolítására:

$ sudo rm /var/lib/dpkg/lock

Ezután kényszerítse a csomag(ok) újrakonfigurálását a következőképpen:

$ sudo dpkg --configure -a

Alternatívaként törölje a /var/lib/apt/lists/ és a cache könyvtárban lévő lock fájlokat az alábbiak szerint:

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

Következő lépésként frissítse a csomagok forráslistáját a következőképpen:

$ sudo apt updateOR$ sudo apt-get update

Végezetül végigjártunk két fontos módszert az Ubuntu (és származékai) felhasználói által az apt-get vagy apt, valamint az aptitude parancsok futtatása során felmerülő gyakori probléma kezelésére.

Meg tudsz osztani más megbízható módszereket, amelyeket ennek a gyakori hibának a kezelésére szántál? Akkor vegye fel velünk a kapcsolatot az alábbi visszajelzési űrlapon keresztül.

Ezeken kívül érdemes megtanulni, hogyan lehet megtalálni és megölni a futó folyamatokat, és átolvasni egy egyszerű útmutatót a kill, pkill és killall parancsokról, amelyekkel megszüntethet egy folyamatot Linuxban.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.