Linux: apt / dnf / pacman is stukkend — oorsake en oplossings

Op Linux is apt, dnf en pacman die kern van sagteware-installasie en opdaterings. As hulle “stukkend” lyk, beteken dit nie net dat nuwe programme nie geïnstalleer kan word nie; dit kan ook veroorsaak dat sekuriteitsopdaterings stop en dat die hele stelsel moeiliker word om te onderhou. Algemene oorsake sluit in opdaterings wat halfpad onderbreek is, foutiewe mirrors, inkonsekwente pakketdatabasisse, mislukte handtekeningverifikasie, gebreekte afhanklikhede of lock-lêers wat agterbly. Die belangrikste ding is om nie onmiddellik cache of konfigurasielêers lukraak uit te vee nie, maar eers te verstaan watter deel werklik foutief is.

Soms lyk dit of die pakketbestuurder self beskadig is, terwyl die werklike oorsaak by netwerk, DNS, repository-opstelling of te min skyfspasie lê. Daarom moet foutopsporing begin deur te bepaal of die probleem in kommunikasie, repositorys, die plaaslike databasis of afhanklikhede lê.

Algemene simptome

  • apt update, dnf update of pacman -Syu stop met foute
  • Boodskappe verskyn oor onoplosbare afhanklikhede of gebreekte pakkette
  • Repositorys kan nie gebruik word nie weens GPG- of handtekeningfoute
  • ‘n Geslote databasis verhoed enige pakketbewerking
  • Mirrors gee 404-foute of timeout-terugvoer
  • Ná ‘n onderbroke opdatering werk pakketbewerking nie meer reg nie
  • Ná sekere biblioteekopdaterings begin die pakketbestuurder self nie meer nie

Wat om eerste na te gaan

Die eerste stap is om vas te stel of die probleem regtig by die pakketbestuurder lê, of eerder by netwerk en DNS.

ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route

As netwerk of DNS reeds foutief is, lyk dit maklik soos ‘n probleem met apt, dnf of pacman, terwyl die werklike oorsaak elders is. As normale netwerkverkeer egter werk en slegs pakketbewerkings faal, moet jy fokus op repositorys, sleutels, locks, cache, databasisse en afhanklikhede.

Algemene oorsake by apt / dnf / pacman

1. Onderbroke opdaterings

Een van die mees algemene oorsake is ‘n opdatering wat halfpad onderbreek is. Kragonderbrekings, ‘n geslote terminal, ‘n SSH-sessie wat breek of ‘n GUI wat vasloop, kan die pakketdatabasis of sekere pakkette in ‘n halfvoltooide toestand laat.

In so ‘n geval is dit beter om die onvoltooide toestand netjies af te handel eerder as om sommer dinge uit te vee.

2. Oorblywende lock-lêers

Pakketbestuurders gebruik locks om te voorkom dat meer as een proses terselfdertyd loop. As daar nog ‘n pakketproses aktief is, of ‘n crash het net die lock agtergelaat, sal die stelsel aandui dat die pakketbestuurder reeds in gebruik is.

Lock-lêers moet egter nie blindelings uitgevee word nie. Bevestig eers dat geen verwante proses meer loop nie.

ps aux | grep -E 'apt|dpkg|dnf|yum|pacman'

3. Beskadigde repository-opstelling

Derdeparty-repositorys, ou PPA’s, verouderde mirrors of oorblyfsels ná ‘n verspreidingsopgradering kan veroorsaak dat pakketbronne self ongeldig raak. Tipiese tekens sluit 404-foute, ontbrekende Release files en mislukte metadata-aflaaie in.

4. GPG- en handtekeningprobleme

Repositorys word gewoonlik kriptografies geverifieer. As ‘n sleutel verval het, nie ingevoer is nie, sleutelbestuur verander het of die plaaslike keyring beskadig is, sal die pakketbestuurder om veiligheidsredes stop.

5. Gebreekte afhanklikhede

Afhanklikhede breek dikwels wanneer onversoenbare pakketweergawes geforseer word, verskillende repositorys gemeng word, gedeeltelike opdaterings gedoen word of stelselbiblioteke handmatig vervang word. Dit is veral problematies op pacman-gebaseerde stelsels, maar apt en dnf raak ook maklik onstabiel wanneer bronne lukraak gemeng word.

6. Beskadigde cache of metadata

Onvolledige pakketaflaaie, ou metadata of korrupte sinkroniseringsdatabasisse kan maak dat pakketlyste nie korrek gelees word nie of dat installasies misluk.

7. Te min skyfspasie

‘n Oorsaak wat dikwels onderskat word, is te min vrye skyfspasie. As partisies soos /var of /boot vol is, kan uitpak en skryfwerk halfpad misluk en die pakketstelsel in ‘n inkonsekwente toestand laat.

df -h
du -sh /var/cache/* 2>/dev/null

Wat om na te gaan wanneer apt faal

Op Debian- en Ubuntu-stelsels is dit belangrik om nie net apt te ondersoek nie, maar ook die toestand van dpkg daaronder.

Herstel onvoltooide pakketkonfigurasie

sudo dpkg --configure -a
sudo apt --fix-broken install

Ná ‘n onderbroke opdatering is hierdie twee opdragte dikwels die belangrikste eerste stap.

Laai pakketlyste weer

sudo apt update

As jy hier 404-, handtekening- of Release file-foute sien, moet /etc/apt/sources.list en /etc/apt/sources.list.d/ nagegaan word.

Maak cache skoon

sudo apt clean
sudo apt autoclean

As die probleem deur beskadigde of verouderde cache veroorsaak word, kan dit help.

Wat om na te gaan wanneer dnf faal

Op Fedora- en RHEL-stelsels moet jy veral op metadata, transaksiegeskiedenis en repository-opstelling let.

Herbou metadata

sudo dnf clean all
sudo dnf makecache

As mirror-inligting of metadata beskadig is, is dit dikwels ‘n goeie eerste stap.

Gaan afhanklikhede en stelselkonsekwentheid na

sudo dnf check
sudo dnf distro-sync

Dit help om te bepaal of die stelsel nog ooreenstem met ‘n konsekwente verspreidingstoestand.

Bekyk geskiedenis

sudo dnf history
sudo dnf history info last

Die geskiedenis wys dikwels ná watter opdatering die probleme begin het.

Wat om na te gaan wanneer pacman faal

Op Arch Linux moet jy veral sinkroniseringsdatabasisse, sleutels, mirrors en gedeeltelike opdaterings ondersoek.

Sinkroniseer databasisse weer

sudo pacman -Syy

As die plaaslike sinkroniseringsdatabasis nie meer met die repository ooreenstem nie, is dit dikwels die eerste stap.

Doen ‘n volledige opdatering

sudo pacman -Syu

Gedeeltelike opdaterings moet op Arch vermy word. Om net sommige pakkette op te dateer en ander oud te laat bly, is ‘n klassieke manier om die stelsel inkonsekwent te maak.

Gaan sleutelprobleme na

sudo pacman-key --init
sudo pacman-key --populate

As die probleem by handtekeninge of die keyring lê, kan ‘n herinitialisering nodig wees.

Logs is baie belangrik

By pakketbestuurfoute is ‘n enkele foutreël selde genoeg. Slegs logs en gedetailleerde uitvoer wys of die fout by handtekeninge, afhanklikhede, netwerk of die databasis lê.

apt / dpkg

sudo tail -n 100 /var/log/apt/history.log
sudo tail -n 100 /var/log/dpkg.log

dnf

sudo dnf history
sudo journalctl -xe --no-pager | tail -n 100

pacman

sudo tail -n 100 /var/log/pacman.log

Praktiese foutopsporingsvolgorde

Stap 1: Toets netwerk en DNS

ping -c 4 8.8.8.8
ping -c 4 google.com

Stap 2: Gaan vrye skyfspasie na

df -h

Stap 3: Gaan prosesse en locks na

ps aux | grep -E 'apt|dpkg|dnf|yum|pacman'

Stap 4: Lees die logs

Jy moet eers uitvind watter laaste werklike handeling misluk het.

Stap 5: Gebruik die regte herstelopdragte vir die verspreiding

By apt begin jy gewoonlik met dpkg --configure -a, by dnf met metadata-skoonmaak, en by pacman met volledige sinkronisering en sleutelkontrole.

Wat om te vermy

  • Moenie lock-lêers uitvee sonder om die oorsaak te verstaan nie
  • Moenie lukrake .deb / .rpm / ander pakkette van onbetroubare bronne installeer nie
  • Moenie herhaaldelik gedeeltelike opdaterings op Arch doen nie
  • Moenie apt met dpkg, dnf met rpm of pacman met handmatige lêervervangings deurmekaar gebruik nie
  • Moenie handtekeningverifikasie afskakel sonder om die fout te verstaan nie

Hoe om te voorkom dat dit weer gebeur

  • Vermy kragonderbrekings en geforseerde stop tydens opdaterings
  • Moenie te veel derdeparty-repositorys byvoeg nie
  • Maak snapshots of rugsteun voor groot opdaterings
  • Volg die verspreiding se aanbevole opdateringsmetode
  • Vermy veral gedeeltelike opdaterings op Arch

Gevolgtrekking

Selfs al lyk dit of apt, dnf of pacman self beskadig is, lê die werklike oorsaak dikwels by netwerk, locks, handtekeninge, afhanklikhede, cache, vrye spasie of repository-opstelling. Die belangrikste is om nie onmiddellik alles uit te vee of te herinstalleer nie, maar eers uit die logs te verstaan op watter vlak die fout werklik lê. Daarna moet die regte benadering vir elke familie gebruik word: dpkg-herstel vir apt, metadata- en geskiedenisondersoek vir dnf, en volledige sinkronisering plus sleutelverifikasie vir pacman.

Leave a Reply

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde word met * aangedui