Zoeken op website

5 opdrachten om snel kapotte pakketten in Linux te herstellen


De meeste Linux-gebruikers krijgen uiteindelijk te maken met kapotte pakketten. Een onderbroken update, een mislukte installatie of een afhankelijkheid die verdwaald is geraakt zijn allemaal problemen die bijdragen aan kapotte pakketten. Hoewel het soms mogelijk is om een grafische interface van Linux, zoals Synaptic, te gebruiken om veel problemen op te lossen, ga ik eerst naar terminalcommando's.

Laten we beginnen waar de meeste mensen zich bevinden: Debian-derivaten zoals Linux Mint, Ubuntu en Pop!_OS. Dit is de omgeving waar ik me het meest comfortabel bij voel en waarop ik me zal richten. Ik heb ook geëxperimenteerd met andere Linux-infrastructuren, dus aan het einde zal ik een korte doorloop van de grootste erbij doen.

sudo apt --fix-broken install

Laat APT afhankelijkheidsproblemen automatisch oplossen

Dit is het eerste commando dat je moet gebruiken op Ubuntu, Mint en de meeste andere op Debian gebaseerde distributies, omdat het APT vraagt om te doen waar het al goed in is: het opruimen van zijn eigen rommel.

Wanneer een pakketinstallatie mislukt, weet APT meestal precies wat er mis is gegaan. Een afhankelijkheid is niet geïnstalleerd, een pakket is half geconfigureerd achtergelaten, of een update is onderbroken en nooit voltooid. Door dit commando uit te voeren, vertelt u APT om te stoppen met klagen en actief de situatie op te lossen met de beste oplossing die het kan berekenen op basis van uw ingeschakelde repositories.

sudo apt --fix-broken install Achter de schermen scant APT je systeem op niet-voldane afhankelijkheden en kapotte pakketstatussen, en probeert deze vervolgens automatisch te herstellen. Dat kan betekenen dat ontbrekende pakketten worden geïnstalleerd, pakketten die niet veilig kunnen worden opgelost worden verwijderd, of dat een installatie die halverwege werd onderbroken wordt voltooid.

Dit commando is vooral effectief na een systeemupdate die is vastgelopen, gecrasht of afgebroken. In veel gevallen herstelt het in één keer het pakketsysteem naar een schone, werkende staat, zonder dat handmatige tussenkomst of probleemoplossing per pakket nodig is.

sudo dpkg --configure -a

Voltooi onvoltooide pakketinstallaties

Soms worden pakketten correct gedownload, maar bereiken ze nooit de finish. De bestanden staan op je systeem, maar de configuratiestap werd onderbroken door een crash, stroomuitval of een ongeduldige afsluiting tijdens een update. Wanneer dat gebeurt, kan APT niet verder omdat het wacht op de juiste configuratie van die pakketten.

Daar komt dit commando van pas.

sudo dpkg --configure -a In plaats van iets nieuws te installeren, vertelt dit dpkg om de configuratie van elk pakket dat momenteel half geïnstalleerd is, te hervatten en te voltooien. Het voert alle wachtende post-installatiescripts uit, voltooit de installatie-stappen en verwijdert de foutmeldingen "pakket is niet volledig geïnstalleerd of verwijderd" die andere bewerkingen blokkeren.

Dit is vaak de ontbrekende stap wanneer APT meteen faalt zonder zelfs te proberen afhankelijkheden op te lossen. Door af te maken wat onderbroken was, geef je APT een schone basis om van te werken. Als het pakketbeheer volledig vastloopt, voer dan dit commando uit voordat je iets agressiever probeert.

sudo apt clean && sudo apt update

Stel de pakketcache opnieuw in en vernieuw de bronnen

Beschadigde pakketdownloads en verouderde metadata kunnen installatieproblemen veroorzaken, zelfs als je repositories helemaal in orde zijn. APT kan blijven proberen een beschadigd bestand te installeren of vertrouwen op pakketinformatie die niet langer overeenkomt met wat werkelijk beschikbaar is. Wanneer dat gebeurt, mislukken installaties met vage of misleidende foutmeldingen, of helemaal zonder duidelijke uitleg.

Het opschonen van de cache zorgt ervoor dat APT alles wat het eerder heeft gedownload weggooit en helemaal opnieuw begint.

sudo apt clean sudo apt update Het eerste commando verwijdert alle gecachte .deb-bestanden, inclusief onvolledige of beschadigde downloads. Het tweede vernieuwt de pakkettenlijsten van je geconfigureerde repositories en haalt bijgewerkte metadata en afhankelijkheidsinformatie op.

Deze combinatie is vooral nuttig wanneer downloads herhaaldelijk mislukken, pakketten weigeren te installeren ondanks dat ze geldig lijken, of systeemupdates plotseling stoppen met werken nadat ze eerder goed functioneerden. Het verwijdert geen geïnstalleerde software, verandert geen systeeminstellingen en beïnvloedt je configuratie niet.

Omdat het veilig, snel en omkeerbaar is, is dit een van de beste laag-risico probleemoplossingstappen die je kunt uitvoeren voordat je doorgaat naar meer ingrijpende oplossingen.

sudo apt verwijderen <pakket-naam> --purge

Verwijder een beschadigd pakket volledig

Soms ligt het probleem niet bij je hele systeem, maar bij één koppig pakket dat zich niet wil gedragen. Het kan verkeerd geconfigureerd zijn, incompatibel met je huidige bibliotheken, of vastzitten in een kapotte afhankelijkheidslus die elke update die je probeert te draaien blokkeert.

In deze gevallen is het meestal niet genoeg om het pakket te verwijderen. Purgen gaat verder.

sudo apt remove PACKAGE-NAME --purge

In dit geval is PACKAGE-NAME een plaatsaanduiding. Zorg ervoor dat je dit vervangt door de daadwerkelijke naam van het pakket!

Dit commando verwijdert het pakket zelf, samen met alle configuratiebestanden. Dat is belangrijk omdat kapotte of verouderde configuraties vaak de reden zijn dat herinstallatiepogingen in de eerste plaats mislukken. Door alles wat met het pakket te maken heeft te wissen, geef je APT een schone lei om mee te werken.

Gebruik deze aanpak wanneer één pakket consequent systeemupdates blokkeert, afhankelijkheidsfouten steeds dezelfde naam vermelden, of wanneer het opnieuw installeren van de software steeds mislukt, ongeacht hoe vaak je het probeert. Na het verwijderen kun je het pakket opnieuw installeren of volledig verwijderd laten, zonder dat je pakketbeheerder in een kapotte staat blijft hangen.

sudo apt autoremove

Opruimen van achtergebleven afhankelijkheden

Wanneer een pakketinstallatie mislukt of software onjuist wordt verwijderd, verdwijnen de afhankelijkheden niet altijd mee. Deze achtergebleven pakketten, bekend als weesafhankelijkheden, kunnen op je systeem blijven en later stilletjes problemen veroorzaken. Ze kunnen conflicteren met nieuwere versies, upgrades blokkeren of eenvoudigweg je pakketdatabase volmaken.

Daar komt dit commando van pas. Het scant je systeem op pakketten die automatisch als afhankelijkheden zijn geïnstalleerd, maar niet langer door iets anders nodig zijn. Vervolgens verwijdert het ze veilig, zonder de software aan te raken die je zelf expliciet hebt geïnstalleerd.

sudo apt autoremove autoremove Dit helpt om afhankelijkheidsconflicten te verminderen, verkleint de kans op toekomstige installatieproblemen en maakt schijfruimte vrij die anders verspild zou worden aan ongebruikte bibliotheken. Hoewel het op zichzelf geen gebroken pakketprobleem oplost, is het een essentiële opruimstap zodra het hoofdprobleem is opgelost.

Zie het als opruimen na de reparatie—ervoor zorgen dat je systeem schoon, consistent en minder vatbaar is voor dezelfde problemen in de toekomst.

Snelle oplossingen voor niet-Debian distributies

Als je niet op een Debian-gebaseerd systeem zit, hier is de beknopte overlevingsgids

Er zijn natuurlijk nog verschillende andere acties die je op niet-Debian-systemen kunt ondernemen, maar dit zijn de snelle opties.

Fedora/RHEL/Rocky/Alma (DNF)

sudo dnf distro-sync sudo dnf clean all sudo dnf history undo Gebruik distro-sync om pakketten met de repositories opnieuw af te stemmen, en history undo om een slechte update terug te draaien.

Arch Linux/Manjaro (Pacman)

sudo pacman -Syu sudo pacman -Syyu sudo pacman -Rns $ (pacman -Qtdq) Voer altijd volledige upgrades uit. Gedeeltelijke upgrades zijn de snelste manier om Arch-gebaseerde systemen kapot te maken.

openSUSE (Zypper)

sudo zypper verify sudo zypper dup --allow-vendor-change Zypper is uitstekend in het oplossen van conflicten als je het zijn werk laat doen en de aanwijzingen leest.

Een laatste realiteitscheck

De meeste problemen met beschadigde pakketten komen uit een van deze bronnen:

  • Onderbroken updates
  • Derdepartij-repositories
  • Mixopnames
  • Handmatige pakketinstallaties

Linux-pakketbeheerders zijn niet voor niets conservatief. Blijf binnen hun regels en problemen komen zelden voor. Als je buiten die regels stapt, kan het kennen van deze commando's paniek vaak in een oplossing van vijf minuten veranderen.

Gerelateerde artikelen