Home
» Come fare
»
Rilascia in modo sicuro il blocco APT di Ubuntu e completa l'aggiornamento.
Rilascia in modo sicuro il blocco APT di Ubuntu e completa l'aggiornamento.
L'errore "Impossibile ottenere il blocco /var/lib/dpkg/lock-frontend" di solito significa che un altro processo di gestione dei pacchetti è già in esecuzione. Attendi che tale processo termini, identificalo se non si chiude automaticamente e solo allora ripristina l'eventuale configurazione del pacchetto interrotta; eliminare il file di blocco non è una soluzione sicura.
APT è lo strumento di gestione dei pacchetti di Ubuntu, mentre dpkgsi occupa dell'installazione e della configurazione dei pacchetti a un livello inferiore. Entrambi utilizzano dei blocchi per impedire che due operazioni modifichino contemporaneamente lo stato di un pacchetto. Un file di blocco può rimanere sul disco durante il normale funzionamento, quindi la sua sola presenza non significa che sia obsoleto.
1. Lascia che l'aggiornamento di Ubuntu termini
Innanzitutto, chiudi qualsiasi altra attività relativa ai pacchetti che hai avviato, come un altro comando del Terminale, l'Aggiornamento software o l'installazione di un'app dall'App Store. Se è aperta una finestra di dialogo di aggiornamento, lasciala terminare invece di avviare un secondo aptcomando. Su Ubuntu desktop, potrebbero essere in esecuzione anche i servizi di aggiornamento in background.
Verifica i servizi systemd pertinenti e attendi se uno di essi è attivo:
systemctl status apt-daily.service apt-daily-upgrade.service
Queste unità possono risultare inattive anche quando un altro frontend del pacchetto detiene il blocco, quindi è necessario verificare anche il processo utilizzando lo stesso blocco. Non avviare ulteriori comandi di installazione o aggiornamento mentre l'operazione corrente è in corso.
Il messaggio di blocco indica la risorsa in uso e può includere un ID di processo per ulteriori indagini.
2. Identificare chi detiene la serratura frontale
Utilizzalo fuserper visualizzare i processi che accedono al blocco, quindi esamina qualsiasi PID che segnala:
Sostituisci 2468con il PID effettivo dal tuo output. Un nome di processo come apt, apt-get, dpkg, o un servizio di aggiornamento indica che il lavoro sul pacchetto potrebbe essere ancora in corso. Se hai bisogno di visualizzare un elenco di processi più ampio, esegui:
ps -eo pid,etime,cmd | grep -E '[a]pt|[d]pkg'
Non dare per scontato che un processo sia bloccato solo perché non mostra alcun progresso visibile. Il download di pacchetti, gli script di manutenzione e il riavvio dei servizi possono richiedere tempo. Se si tratta di un aggiornamento avviato in un altro terminale, torna a quel terminale e lascialo completare. Se l'aggiornamento è gestito da un'interfaccia grafica, utilizza tale applicazione per annullare o chiudere l'operazione normalmente.
Utilizza il PID e il nome del comando riportati per distinguere un programma di aggiornamento attivo dal comando che stai tentando di eseguire.
3. Gestire con attenzione un'operazione realmente bloccata
Se si tratta di un aggiornamento automatico, prima di intervenire verificane lo stato e i registri:
systemctl status apt-daily-upgrade.service
sudo journalctl -u apt-daily-upgrade.service -b --no-pager
Quando il servizio è ancora in corso, lascialo in pace. Se riconosci un comando di pacchetto che hai avviato tu stesso e che è chiaramente bloccato, interrompilo una volta dal suo terminale con Ctrl+Ce attendi che ritorni alla shell. Non usare kill -9, killall dpkg, né rimuovere i file in /var/lib/dpkg; l'interruzione improvvisa degli script di pacchetto può lasciare i pacchetti decompressi ma non configurati.
Se il processo è terminato ma l'operazione di installazione del pacchetto è stata interrotta, riavviare il sistema è un metodo valido per eliminare i processi orfani nello spazio utente. Dopo il riavvio, assicurarsi che non siano in esecuzione attività di Aggiornamento Software o di installazione prima di continuare. Se un servizio rimane bloccato ripetutamente, utilizzare l'output del registro per diagnosticare il servizio anziché eliminare ripetutamente i file di blocco.
Un servizio apt-daily-upgrade attivo è un motivo per attendere e verificarne lo stato di avanzamento, non per sbloccarlo.
4. Stato del pacchetto di riparazione dopo lo sblocco
Una volta che nessun gestore di pacchetti sta utilizzando il blocco, completare tutte le configurazioni dei pacchetti in sospeso:
sudo dpkg --configure -a
Questo processo configura i pacchetti che sono stati decompressi ma non completamente installati. Se segnala problemi di dipendenza, chiedi ad APT di risolverli:
sudo apt-get -f install
Leggete le modifiche proposte prima di confermarle. Non aggiungete nulla -ydurante la risoluzione dei problemi: il messaggio vi permette di verificare se APT prevede una rimozione o una modifica imprevista. Al termine della riparazione, aggiornate gli elenchi dei pacchetti e riprovate l'attività originale.
Sostituisci PACKAGE_NAMEcon il pacchetto che intendevi installare. Il manuale di APT-get di Ubuntu documenta questo -fcome un tentativo di correggere le dipendenze danneggiate, e il manuale di dpkg spiega l'azione di configurazione del pacchetto. Se APT segnala ancora il blocco, ripeti il controllo del processo; nel frattempo potrebbe essere iniziata una seconda attività di pacchetto.
Dopo aver sbloccato il pacchetto, configura i pacchetti in sospeso e verifica che APT sia in grado di leggere uno stato coerente dei pacchetti.
Conferma che la riparazione ha funzionato
La correzione è completa quando il comando di installazione o aggiornamento originale viene eseguito senza l'errore di blocco, sudo dpkg --configure -atermina senza un errore di configurazione in sospeso e sudo apt-get checknon segnala dipendenze interrotte. Se il blocco viene ripristinato, un altro processo lo sta ancora acquisendo; identificare tale processo prima di intraprendere ulteriori azioni.
I manuali Noble di Ubuntu descrivono i comandi di gestione dei pacchetti sopra riportati. I tempi esatti del servizio e i nomi dei processi variano a seconda della versione di Ubuntu e degli strumenti di gestione dei pacchetti desktop installati, ma la regola fondamentale rimane la stessa: attendere il proprietario del blocco, quindi riparare dpkg se l'operazione precedente è stata interrotta.