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 updateofpacman -Syustop 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.