Parandage Ubuntu "Halduskataloogi (/ var/lib/dpkg /) ei saa lukustada"


Kasutades Ubuntu Linuxis APT paketihaldustööriista või selle derivaate, näiteks Linux Mint (mida ma tegelikult igapäevase töö tegemisel peamise operatsioonisüsteemina kasutan), võisite ilmneda tõrge -\"ei õnnestunud administreerimiskataloogi lukustada (/ var/lib/dpkg /) on veel üks protsess, mis seda kasutab ”käsureal.

See viga võib olla nii tüütu, eriti uute Linuxi (Ubuntu) kasutajate jaoks, kes ei pruugi täpselt teada vea põhjust.

Allpool on näide, mis näitab lukufailiviga Ubuntu 16.10-s:

[email :~$ 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?

Allpool olev väljund on sama vea teine võimalik eksemplar:

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?

Kuidas saate ülaltoodud vea lahendada, kui tulevikus sellega kokku puutute? Selle vea (de) lahendamiseks on mitu võimalust, kuid selles juhendis käsitleme kahte kõige lihtsamat ja tõenäoliselt kõige tõhusamat viisi selle lahendamiseks.

1. Leidke ja tapke kõik apt-get või apt protsessid

Käivitage allpool olev käsk käskude haaramiseks koos torujuhtmega.

$ ps -A | grep apt

Tapke iga apt-get- või apt-protsessi puhul, mida näete ülaltoodud käsu väljundis, iga protsess alloleva käsu abil.

Protsessi ID (PID) on ülaltoodud ekraanipildi esimeses veerus.

$ sudo kill -9 processnumber
OR
$ sudo kill -SIGKILL processnumber

Näiteks tapab allpool olev käsk, kus 9 on signaali SIGKILL signaali number, esimene apt-protsess:

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

2. Kustutage lukustusfailid

Lukufail takistab lihtsalt juurdepääsu mõnele teisele failile või mõnedele teie Linuxi süsteemi andmetele, see mõiste on olemas ka Windowsis ja teistes opsüsteemides.

Kui olete käsu apt-get või apt käivitanud, luuakse lukufail mis tahes neist kataloogidest/var/lib/apt/lists /,/var/lib/dpkg/ja/var/cache/apt/archives /.

See aitab vältida juba käimasoleva apt-get või apt protsessi katkestamist kas kasutaja või muude süsteemiprotsesside poolt, mis peaksid töötama failidega, mida apt-get või apt kasutavad. Kui protsess on lõpetatud, kustutatakse lukufail.

Oluline: kui lukustus on endiselt üleval kahes ülaltoodud kataloogis, kusjuures märgatavat apt-get- või apt-protsessi ei käivitu, võib see tähendada, et protsess toimus ühel või teisel põhjusel, seetõttu peate lukustusfailid kustutama tühjendage viga.

Kõigepealt käivitage allolev käsk lukufaili eemaldamiseks kataloogist /var/lib/dpkg/:

$ sudo rm /var/lib/dpkg/lock

Seejärel sundige paketti (pakette) nii ümber seadistama:

$ sudo dpkg --configure -a

Teise võimalusena kustutage lukufailid kataloogist /var/lib/apt/lists/ ja vahemälust järgmiselt:

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

Järgmisena värskendage oma pakettide allikate loendit järgmiselt:

$ sudo apt update
OR
$ sudo apt-get update

Kokkuvõtteks võib öelda, et oleme läbinud kaks olulist meetodit Ubuntu (ja selle derivaatide) kasutajate silmitsi seisva levinud probleemi lahendamiseks, käivitades nii apt-get või apt kui ka aptitude käsklused.

Kas teil on selle levinud vea lahendamiseks muid usaldusväärseid jagamismeetodeid? Seejärel võtke meiega ühendust alloleva tagasiside vormi kaudu.

Lisaks võite Linuxi protsessi lõpetamiseks soovida õppida käske kill, pkill ja killall.