Pataisykite „Subprocesas /usr/bin/dpkg grąžino klaidos kodą (1)“


Neretai susiduriama su sugedusių paketų problema Ubuntu ir kituose Debian pagrindu sukurtuose platinimuose. Kartais, kai atnaujinate sistemą arba įdiegiate programinės įrangos paketą, galite susidurti su klaida „Subprocesas /usr/bin/dpkg grąžino klaidos kodą“.

Esminė šios klaidos frazė yra /usr/bin/dpkg, kuri nurodo „Linux“ naudojamą dpkg paketo diegimo programą. Paketų diegimo programa valdo programinę įrangą, naujinimus ir priklausomybes. Jei jis sugadinamas, bet koks bandymas įdiegti naują programinę įrangą gali suaktyvinti šį klaidos pranešimą.

Pavyzdžiui, prieš kurį laiką bandžiau naujovinti į Ubuntu 22.04 ir susidūriau su dpkg klaida, kaip parodyta toliau.

Errors were encountered while processing:
google-chrome-stable
E: Sub-process /usr/bin/dpkg returned an error code (1)

Tai rodo, kad paketas google-chrome-stable yra sugadintas arba sugadintas. Yra keletas šios problemos sprendimo būdų, todėl dar nemeskite rankšluosčio ir neišmeskite sistemos.

Taisant subprocesą /usr/bin/dpkg, buvo pateiktas klaidos kodas (1)

Išspręskime problemą dėl šios sugadinto paketo klaidos. Aptarsiu kelis metodus, pradedant nuo paprastesnių. Šie pradiniai žingsniai yra nesudėtingi ir nereikalauja daug pastangų.

1 būdas: perkonfigūruokite dpkg paketų duomenų bazę

Vienas iš šios klaidos priežasčių yra sugadinta dpkg paketų duomenų bazė. Tai gali sukelti staigus programinės įrangos paketo diegimo pertraukimas. Duomenų bazės perkonfigūravimas yra vienas iš būdų išspręsti šią problemą.

Norėdami tai padaryti, tiesiog vykdykite komandą:

sudo dpkg --configure -a

Taip iš naujo sukonfigūruojami išpakuoti paketai, kurie nebuvo įdiegti diegimo metu.

2 būdas: priverstinai įdiekite probleminį paketą

Kartais diegiant programinės įrangos paketus gali atsirasti klaidų. Kai taip nutinka, galite priverstinai įdiegti paketą naudodami -f parinktį, kaip parodyta.

sudo apt install -f
OR
sudo apt install --fix-broken

Parinktis -f ir --fix-broken gali būti naudojamos pakaitomis, norint taisyti sugedusias priklausomybes, atsirandančias dėl pertraukto paketo arba talpykloje esančio paketo atsisiuntimo.

3 būdas: pašalinkite arba išvalykite blogą arba sugadintą programinės įrangos paketą

Jei pirmieji du sprendimai nepadėjo išspręsti problemos, galite pašalinti arba išvalyti probleminį programinės įrangos paketą, kaip parodyta.

sudo apt remove --purge package_name

Pavyzdžiui, mano atveju problema buvo išspręsta išvalius „Google Chrome“ paketą.

sudo apt remove --purge google-chrome-stable

Tada iškvieskite toliau pateiktas komandas, kad pašalintumėte visus senus, nenaudojamus ir nereikalingus paketus, kurie taip pat atlaisvina vietos standžiajame diske.

sudo apt clean
sudo apt autoremove

4 būdas: pašalinkite visus su paketu susijusius failus

Galiausiai galite rankiniu būdu pašalinti visus failus, susietus su varginančiu paketu. Pirmiausia turite rasti šiuos failus, esančius /var/lib/dpkg/info kataloge, kaip parodyta.

sudo ls -l /var/lib/dpkg/info | grep -i package_name

Pateikę failų sąrašą, galite perkelti juos į /tmp katalogą, kaip parodyta

sudo mv /var/lib/dpkg/info/package-name.* /tmp

Arba galite naudoti komandą rm, kad rankiniu būdu pašalintumėte failus.

sudo rm -r /var/lib/dpkg/info/package-name.*

Galiausiai atnaujinkite paketų sąrašus, kaip parodyta:

sudo apt update

Po to galėsite dar kartą įdiegti programinės įrangos paketą iš naujo.

Išvada

Šio tipo dpkg klaida nurodo paketo diegimo programos problemą, kurią paprastai sukelia diegimo proceso pertraukimas arba sugadinta dpkg duomenų bazė.

Bet kuris iš aukščiau paminėtų sprendimų turėtų ištaisyti šią klaidą. Jei pasiekėte tiek daug, tikimės, kad problema buvo sėkmingai išspręsta ir jums pavyko iš naujo įdiegti programinės įrangos paketą.

Jei kuris nors iš būdų jums padėjo, nurodykite, kuris iš jų išsprendė problemą. Jei pavyko ištaisyti šią klaidą kitu metodu, maloniai pasidalykite juo, kad padėtumėte kitiems, kurie gali susidurti su ta pačia problema.