Rekebisha Haiwezi kufunga saraka ya usimamizi (/var/lib/dpkg/) katika Ubuntu


Wakati unatumia zana ya usimamizi wa kifurushi cha APT katika Ubuntu Linux au vinyago vyake kama vile Linux Mint (ambayo mimi hutumia kama mfumo wangu wa uendeshaji wa kufanya kazi za kila siku), unaweza kuwa umekumbana na hitilafu - \haiwezi kufunga saraka ya usimamizi (/ var/lib/dpkg/) ni mchakato mwingine kuitumia” kwenye safu ya amri.

Hitilafu hii inaweza kuwa ya kuudhi sana hasa kwa watumiaji wapya wa Linux (Ubuntu) ambao huenda hawajui hasa sababu ya kosa hilo.

Ifuatayo ni mfano, unaoonyesha kosa la faili ya kufuli katika Ubuntu 16.10:

[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?

Matokeo hapa chini ni mfano mwingine unaowezekana wa kosa kama hilo:

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?

Unawezaje kutatua hitilafu iliyo hapo juu ikiwa utakutana nayo katika siku zijazo? Kuna njia kadhaa za kushughulikia makosa haya, lakini katika mwongozo huu, tutapitia njia mbili rahisi na pengine njia bora zaidi za kulitatua.

1. Tafuta na Uue Taratibu zote zinazofaa-kupata au zinazofaa

Tekeleza amri hapa chini ili grep amri pamoja na bomba.

$ ps -A | grep apt

Kwa kila mchakato wa apt-get au apt ambao unaweza kuona katika matokeo ya amri hapo juu, kuua kila mchakato kwa kutumia amri iliyo hapa chini.

Kitambulisho cha mchakato (PID) kinapatikana kwenye safu wima ya kwanza kutoka kwenye picha ya skrini iliyo hapo juu.

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

Kwa mfano, katika amri iliyo hapa chini ambapo 9 ni nambari ya ishara ya ishara ya SIGKILL, itaua mchakato wa kwanza wa apt:

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

2. Futa Faili za kufuli

Faili ya kufuli inazuia ufikiaji wa faili nyingine au data fulani kwenye mfumo wako wa Linux, dhana hii iko kwenye Windows na mifumo mingine ya uendeshaji pia.

Mara tu unapoendesha apt-get au apt amri, faili ya kufuli huundwa chini ya saraka zozote hizi /var/lib/apt/lists/, /var/lib/dpkg/ na /var/cache/apt/archives/.

Hii husaidia kuzuia mchakato wa apt-get au apt ambao tayari unaendelea kutokana na kuingiliwa na mtumiaji au michakato mingine ya mfumo ambayo itahitaji kufanya kazi na faili zinazotumiwa na apt-get au apt. Mchakato unapomaliza kutekeleza, faili ya kufuli inafutwa.

Muhimu: Ikiwa kufuli bado inatoka katika saraka mbili hapo juu bila mchakato unaoonekana wa apt-get au apt unaoendelea, hii inaweza kumaanisha kuwa mchakato ulifanyika kwa sababu moja au nyingine, kwa hivyo unahitaji kufuta faili za kufuli ili futa kosa.

Kwanza tekeleza amri iliyo hapa chini ili kuondoa faili ya kufuli kwenye /var/lib/dpkg/ saraka:

$ sudo rm /var/lib/dpkg/lock

Baadaye lazimisha vifurushi kusanidi upya kama hivyo:

$ sudo dpkg --configure -a

Vinginevyo, futa faili za kufuli katika /var/lib/apt/lists/ na saraka ya kache kama ilivyo hapo chini:

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

Ifuatayo, sasisha orodha ya vyanzo vya vifurushi vyako kama ifuatavyo:

$ sudo apt update
OR
$ sudo apt-get update

Kwa kumalizia, tumepitia njia mbili muhimu za kushughulikia tatizo la kawaida linalowakabili watumiaji wa Ubuntu (na derivatives yake), huku tukiendesha apt-get au apt pamoja na amri za aptitude.

Je! una njia zingine za kuaminika za kushiriki zinazokusudiwa kushughulikia kosa hili la kawaida? Kisha wasiliana nasi kupitia fomu ya maoni hapa chini.

Kwa kuongeza, unaweza pia kutaka kujifunza kill, pkill na killall amri ili kusitisha mchakato katika Linux.