Linux: apt / dnf / pacman sono rotti — cause e soluzioni

In Linux, apt, dnf e pacman sono la base dell’installazione e dell’aggiornamento del software. Quando sembrano “rotti”, il problema non si limita al fatto che non è più possibile installare nuovi programmi. Spesso si fermano anche gli aggiornamenti di sicurezza, e la manutenzione dell’intero sistema diventa molto più difficile. Le cause più comuni sono aggiornamenti interrotti, mirror difettosi, database dei pacchetti incoerenti, errori di firma, dipendenze rotte o file lock rimasti nel sistema. La cosa più importante non è iniziare subito a cancellare cache e configurazioni a caso, ma capire prima quale parte si è davvero danneggiata.

A volte sembra che si sia rotto il gestore dei pacchetti stesso, mentre la causa reale si trova nella rete, nel DNS, nella configurazione dei repository o nella mancanza di spazio su disco. Per questo la diagnosi dovrebbe iniziare distinguendo se il problema riguarda la comunicazione, il repository, il database locale o le dipendenze.

Sintomi comuni

  • apt update, dnf update o pacman -Syu si fermano con un errore
  • Compaiono messaggi su dipendenze non risolvibili o pacchetti danneggiati
  • I repository non possono essere usati a causa di errori GPG o di firma
  • Il database è bloccato e nessuna operazione sui pacchetti funziona
  • I mirror restituiscono 404 o timeout
  • Dopo un aggiornamento interrotto, le operazioni sui pacchetti non funzionano più correttamente
  • Dopo l’aggiornamento di alcune librerie, il gestore dei pacchetti stesso non si avvia più

Cosa controllare per prima cosa

Il primo passo è capire se il problema riguarda davvero il gestore dei pacchetti oppure se dipende dalla rete o dal DNS.

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

Se la rete o il DNS sono già guasti, i problemi di apt, dnf o pacman potrebbero esserne solo una conseguenza. Se invece la rete normale funziona e falliscono soltanto le operazioni sui pacchetti, allora bisogna concentrarsi su repository, chiavi, lock, cache, database e dipendenze.

Cause comuni nei problemi di apt / dnf / pacman

1. Aggiornamento interrotto

Una delle cause più comuni è un aggiornamento fermato a metà. Un’interruzione di corrente, la chiusura del terminale, una sessione SSH interrotta o il blocco dell’ambiente grafico possono lasciare il database dei pacchetti o alcuni pacchetti in uno stato incompleto.

In questi casi non conviene iniziare subito a cancellare file, ma piuttosto cercare di completare correttamente lo stato rimasto a metà.

2. File lock rimasti

I gestori di pacchetti usano i lock per evitare l’esecuzione di più operazioni contemporaneamente. Se un altro processo è ancora attivo, oppure dopo un crash è rimasto solo il file lock, il sistema dirà che il gestore dei pacchetti è già in uso.

Ma i file lock non vanno cancellati alla cieca. Prima bisogna verificare che non ci siano davvero processi collegati ancora in esecuzione.

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

3. Configurazione del repository danneggiata

Repository di terze parti, vecchi PPA, mirror non più validi o residui di configurazione dopo un upgrade della distribuzione possono rendere non validi gli stessi sorgenti dei pacchetti. I sintomi tipici sono errori 404, assenza del Release file o problemi nel recupero dei metadata.

4. Problemi di chiavi GPG e firme

I repository vengono normalmente verificati in modo crittografico. Se una chiave è scaduta, non è stata importata, il sistema di gestione delle chiavi è cambiato o il keyring locale è danneggiato, il gestore dei pacchetti si fermerà per motivi di sicurezza.

5. Dipendenze rotte

Le dipendenze si rompono spesso quando si forzano versioni incompatibili di pacchetti, si mescolano repository diversi, si eseguono aggiornamenti parziali oppure si sovrascrivono manualmente librerie di sistema. Questo è particolarmente critico nei sistemi basati su pacman, ma anche apt e dnf diventano facilmente instabili se si mischiano sorgenti senza controllo.

6. Cache o metadata corrotti

Pacchetti scaricati solo in parte, metadata obsoleti o database di sincronizzazione corrotti possono impedire la corretta lettura delle liste dei pacchetti e causare il fallimento delle installazioni.

7. Mancanza di spazio su disco

Una causa frequente ma spesso sottovalutata è la mancanza di spazio libero. Se partizioni come /var o /boot sono piene, l’estrazione e la scrittura dei file possono fallire a metà, lasciando il sistema di pacchetti in uno stato incoerente.

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

Cosa controllare quando apt non funziona

Nei sistemi Debian / Ubuntu è importante guardare non solo a apt, ma anche allo stato di dpkg, che lavora sotto di esso.

Correggere i pacchetti non configurati completamente

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

Dopo un aggiornamento interrotto, questi due comandi sono spesso il primo passo più importante.

Ricaricare l’elenco dei pacchetti

sudo apt update

Se qui compaiono errori 404, di firma o di Release file, bisogna controllare /etc/apt/sources.list e il contenuto di /etc/apt/sources.list.d/.

Pulire la cache

sudo apt clean
sudo apt autoclean

Se il problema deriva da cache corrotta o vecchia, questo può aiutare.

Cosa controllare quando dnf non funziona

Nei sistemi Fedora / RHEL bisogna prestare particolare attenzione ai metadata, alla cronologia delle transazioni e alla configurazione dei repository.

Ricostruire i metadata

sudo dnf clean all
sudo dnf makecache

Se le informazioni sui mirror o i metadata sono danneggiati, questo è spesso un buon primo passo.

Controllare dipendenze e coerenza del sistema

sudo dnf check
sudo dnf distro-sync

Questo aiuta a verificare se il sistema corrisponde ancora allo stato previsto dei pacchetti della distribuzione.

Visualizzare la cronologia

sudo dnf history
sudo dnf history info last

La cronologia spesso mostra dopo quale aggiornamento sono iniziati i problemi.

Cosa controllare quando pacman non funziona

In Arch Linux è particolarmente importante controllare i database di sincronizzazione, le chiavi, i mirror e la presenza di aggiornamenti parziali.

Risincornizzare i database

sudo pacman -Syy

Se il database di sincronizzazione locale non corrisponde più al repository, questo è spesso il primo passo.

Eseguire un aggiornamento completo

sudo pacman -Syu

In Arch bisogna evitare gli aggiornamenti parziali. Aggiornare solo alcuni pacchetti e lasciare vecchi gli altri è un modo classico per creare incoerenza nel sistema.

Controllare i problemi delle chiavi

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

Se il problema riguarda le firme o il keyring, potrebbe essere necessaria una nuova inizializzazione.

I log sono molto importanti

Negli errori del gestore dei pacchetti non basta quasi mai guardare solo l’ultima riga. Solo i log e l’output dettagliato mostrano se il problema riguarda firme, dipendenze, rete o database.

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

Ordine pratico di verifica

Passo 1: Controllare rete e DNS

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

Passo 2: Controllare lo spazio libero

df -h

Passo 3: Controllare processi e file lock

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

Passo 4: Leggere i log

Per prima cosa bisogna capire quale ultima operazione concreta è davvero fallita.

Passo 5: Usare i comandi di recupero corretti per la distribuzione

Con apt si inizia spesso da dpkg --configure -a, con dnf dalla pulizia dei metadata e con pacman dalla sincronizzazione completa e dal controllo delle chiavi.

Cosa evitare

  • Non cancellare i file lock senza capire la causa
  • Non installare file .deb / .rpm / altri pacchetti da fonti non affidabili
  • Non eseguire aggiornamenti parziali ripetuti in Arch
  • Non mescolare senza criterio apt con dpkg, dnf con rpm o pacman con modifiche manuali ai file
  • Non disattivare il controllo delle firme senza comprendere l’errore

Come evitare che il problema si ripeta

  • Evitare interruzioni di corrente e arresti forzati durante gli aggiornamenti
  • Non aggiungere troppi repository di terze parti
  • Creare snapshot o backup prima di grandi aggiornamenti
  • Seguire il metodo di aggiornamento consigliato dalla distribuzione
  • Specialmente in Arch, evitare gli aggiornamenti parziali

Conclusione

Anche se sembra che proprio apt, dnf o pacman siano rotti, la vera causa si trova spesso nella rete, nei file lock, nelle firme, nelle dipendenze, nella cache, nello spazio libero o nella configurazione dei repository. La cosa più importante non è cancellare o reinstallare subito in modo casuale, ma capire prima tramite i log a quale livello si è verificato davvero il guasto. Solo dopo si dovrebbe usare l’approccio corretto: riparazione di dpkg per apt, controllo di metadata e cronologia per dnf, e sincronizzazione completa con verifica delle chiavi per pacman.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *