Labojiet Ubuntu "Nevar bloķēt administrācijas direktoriju (/ var/lib/dpkg /)"
Lietojot APT pakotņu pārvaldības rīku Ubuntu Linux vai tā atvasinājumus, piemēram, Linux Mint (kuru es faktiski izmantoju kā savu galveno operētājsistēmu ikdienas darbu veikšanai), iespējams, esat saskāries ar kļūdu - “nevarat bloķēt administrācijas direktoriju (/ var/lib/dpkg /) ir vēl viens process, kas to izmanto ”komandrindā.
Šī kļūda var būt tik kaitinoša, it īpaši jaunajiem Linux (Ubuntu) lietotājiem, kuri, iespējams, precīzi nezina kļūdas cēloni.
Zemāk ir sniegts piemērs, parādot bloķēšanas faila kļūdu 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?
Zemāk esošā izeja ir vēl viens iespējamais tās pašas kļūdas gadījums:
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?
Kā jūs varat atrisināt iepriekš minēto kļūdu gadījumā, ja nākotnē to sadursities? Šīs kļūdas (-u) novēršanai ir vairāki veidi, taču šajā rokasgrāmatā mēs iziesim divus vienkāršākos un, iespējams, visefektīvākos risinājumus.
1. Atrodiet un nogaliniet visus apt-get vai apt procesus
Palaidiet zemāk esošo komandu, lai sagrābtu komandas kopā ar cauruļvadu.
$ ps -A | grep apt
Katram apt-get vai apt procesam, kuru varat redzēt iepriekš minētās komandas izvadā, nogaliniet katru procesu, izmantojot zemāk esošo komandu.
Procesa ID (PID) ir atrodams pirmajā kolonnā no iepriekš redzamā ekrānuzņēmuma.
$ sudo kill -9 processnumber OR $ sudo kill -SIGKILL processnumber
Piemēram, zemāk esošajā komandā, kur 9
ir signāla SIGKILL signāls, tiks nogalināts pirmais apt process:
$ sudo kill -9 13431 OR $ sudo kill -SIGKILL 13431
2. Dzēsiet bloķēšanas failus
Bloķēšanas fails vienkārši neļauj piekļūt citam (-iem) failam (-iem) vai dažiem datiem jūsu Linux sistēmā, šī koncepcija ir arī Windows un citās operētājsistēmās.
Kad esat palaidis komandu apt-get vai apt, jebkurā no šiem direktorijiem/var/lib/apt/lists /,/var/lib/dpkg/un/var/cache/apt/archives/tiek izveidots bloķēšanas fails.
Tas palīdz izvairīties no tā, ka apt-get vai apt procesu, kas jau darbojas, nevar pārtraukt lietotājs vai citi sistēmas procesi, kuriem būtu jāstrādā ar failiem, kurus izmanto apt-get vai apt. Kad process ir pabeigts, bloķēšanas fails tiek izdzēsts.
Svarīgi: Ja abos iepriekšminētajos direktorijos joprojām notiek bloķēšana, un tajā nav redzams apt-get vai apt process, tas var nozīmēt, ka process notika viena vai otra iemesla dēļ, tāpēc jums ir jāizdzēš bloķēšanas faili notīriet kļūdu.
Vispirms izpildiet zemāk esošo komandu, lai noņemtu bloķēšanas failu direktorijā /var/lib/dpkg/
:
$ sudo rm /var/lib/dpkg/lock
Pēc tam piespiediet paketi (-es) pārkonfigurēt tā:
$ sudo dpkg --configure -a
Varat arī izdzēst bloķēšanas failus direktorijā /var/lib/apt/lists/
un kešatmiņā, kā norādīts tālāk
$ sudo rm /var/lib/apt/lists/lock $ sudo rm /var/cache/apt/archives/lock
Pēc tam atjauniniet pakotņu avotu sarakstu šādi:
$ sudo apt update OR $ sudo apt-get update
Noslēgumā mēs esam izgājuši cauri divām svarīgām metodēm, lai risinātu kopēju problēmu, ar kuru saskaras Ubuntu (un tās atvasinājumu) lietotāji, vienlaikus darbinot apt-get vai apt, kā arī aptitude komandas.
Vai jums ir citas uzticamas koplietošanas metodes, kas paredzētas šīs izplatītās kļūdas novēršanai? Pēc tam sazinieties ar mums, izmantojot zemāk esošo atsauksmju veidlapu.
Turklāt jūs varat vēlēties iemācīties komandas kill, pkill un killall, lai izbeigtu procesu Linux.