Linux-pakethanterare, som Apt och DNF, är extremt kraftfulla och intuitiva, men det betyder inte att saker inte kan gå fel. Ibland går en paketinstallation fel och du får plocka upp bitarna. Pakethanterare har möjlighet att fixa trasiga paket och hoppa över trasiga uppdateringar för att få ditt system att fungera igen och undvika problem i framtiden. Den här artikeln beskriver hur man fixar trasiga paket i Linux.
Dessa tips och tricks ska hjälpa dig att bli fast i de flesta fall. De är alla ganska universella, men varje situation är annorlunda, så kom ihåg det när du försöker felsöka din egen situation.
Åtgärda trasiga paket i Ubuntu
Apt har ett par flaggor som du kan använda för att åtgärda saknade beroenden eller paket som bröt av en eller annan anledning under installationen. En vanlig användning här skulle vara att installera en tredjepartsdeb och hitta att den hade beroenden som du inte visste om. Dessa beroenden kommer troligen inte att dras in på egen hand, och dpkg
kommer att klaga på att paketet saknas i dem. I vilket fall som helst kan du prova följande steg.

Kör först en uppdatering för att se till att det inte finns nyare versioner av de obligatoriska paketen.
sudo apt update --fix-missing
Därefter kan du försöka tvinga Apt att leta efter och korrigera eventuella beroenden eller trasiga paket. Detta installerar faktiskt alla saknade paket och reparerar befintliga installationer.
sudo apt install -f
En annan plats där fel kan dyka upp i paketinstallationer är konfigurationsprocessen. Bakom kulisserna tar dpkg hand om den här delen, inte Apt, så det är självklart att när ett paket misslyckas under konfigurationen är dpkg verktyget att vända sig till för att fixa det.

Börja med att försöka tvinga dpkg att konfigurera om eventuella trasiga eller delvis konfigurerade paket.
sudo dpkg --configure -a
Om det inte löser problemet kan du ta ett mer kraftfullt tillvägagångssätt. Börja med att lista alla paket som dpkg markerade som kräver ominstallation.
sudo dpkg -l | grep ^..r
Du bör se det problematiska paketet / paketen där. Så länge det inte finns något som inte verkar hör hemma där kan du tvinga bort de trasiga paketen.
sudo dpkg --remove --force-remove --reinstreq
När dpkg är klar, försök att städa upp med Apt.
sudo apt clean sudo apt update
Med lycka till kommer du tillbaka dit du började. Det ger dig inte de trasiga paketen som du försökte installera, men åtminstone kommer Apt att fungera igen.
Permanent DPKG-lås
Det finns ett mindre vanligt problem med löjliga dpkg-lås som hindrar dig från att göra någonting. Varje gång du försöker använda Apt eller dpkg får du ett felmeddelande som säger att ett annat program redan är … när det inte är det.
Det är faktiskt enkelt att radera låsfilen som hindrar dig från att använda Apt och komma tillbaka till att göra vad du behöver. Ibland förblir dessa låsfiler på plats efter att ett fel inträffat i en installation, vilket spårar processen och förhindrar att filen tas bort automatiskt. I det här fallet måste du göra det själv.
sudo rm /var/lib/apt/lists/lock
Ta bort låset i cachen för gott mått.
sudo rm /var/cache/apt/archives/lock
Åtgärda trasiga paket i Fedora / CentOS / RHEL
Åtgärda trasiga paket i Fedora / CentOS / RHEL är mindre vanligt, eftersom yum och dnf gör riktigt bra arbete för att se till att paket installeras korrekt. Ibland blandas dock saker i paketanvändningen. Kommandot att göra det på rpm-baserade system är:
sudo rpm -Va

De -V
alternativet är för verifiering, vilket innebär att det kommer att gå igenom och jämföra information om de installerade filerna med informationen som är lagrad i rpm
databas. Detta är lite hjälpsamt, eftersom det vanligtvis ger dig en lång lista med filer, men det kan ge dig någonstans att börja om du har problem med en viss applikation. Du kan köra en dnf reinstall
på alla paket du ser i listan som kan ge dig problem.
sudo dnf --refresh reinstall PACKAGE_NAME
Det kommer att ställa in alla metadata som utgångna, så det kommer att genomsöka alla förvar du har aktiverat och leta efter en ny version av det paketet. Om du upptäcker att det finns trasiga beroenden med det paketet kommer DNF antagligen att klaga och ber dig att använda --skip-broken
flagga. Detta kan också innebära att du inte har ett visst arkiv aktiverat för att dra in ett beroende, så du kan behöva göra lite forskning där.
Slutsats
Förhoppningsvis fungerade en av dessa korrigeringar för dig, och du arbetar tillbaka på ditt Linux-system normalt. Kom ihåg att det bästa sättet att hantera en helt out-of-hand situation är att försöka återvända till det som det var tidigare. Försök inte driva igenom och lägg till fler saker för att lösa ett brott genom att lägga till fler saker om du inte vet exakt vad du gör. Chansen är att du kommer att hamna i en trasslig röra av trasiga saker som blir svårare att reda ut.
Du kan också behöva städa upp ditt Linux-system för att bli av med onödiga och trasiga paket. Om orsaken beror på att en gammal dator inte kan stödja nyare programvara kan du också använda dessa tre sätt för att utnyttja din gamla dator.
Relaterad:
-
Hur man kopierar och klistrar in text, filer och mappar i Linux Terminal
-
Så här fixar du felet ’Inget utrymme kvar på enheten’ på Linux
-
Så här fixar du anslutningsfel ”Ingen väg till värd” i Linux