Come rimuovere i pacchetti obsoleti dopo l'aggiornamento della versione non riuscito tramite do-release-upgrade su Ubuntu?


14

A volte, quando aggiorno un sistema tramite do-release-upgrade, il processo di aggiornamento non riesce e lo script mi ​​dice di terminare il processo manualmente tramite dpkg --configure -a. Questo non è un problema grave: dopo aver risolto manualmente il problema delle dipendenze e il processo di aggiornamento di finitura tutto funziona bene.

Ma lo do-release-upgradescript ha un processo di pulizia dopo aver terminato l'aggiornamento:

Remove obsolete packages?  
XXX packages are going to be removed.  
Continue [yN]  Details [d]y

che rimuove alcuni pacchetti obsoleti dalla vecchia versione del sistema.

Sembra che questo processo non venga eseguito quando l'aggiornamento automatico non riesce e termino l'aggiornamento manualmente, quindi i pacchetti obsoleti dalla vecchia versione rimangono installati nel sistema.

Come posso eseguire manualmente il processo "Rimuovi pacchetti obsoleti" dopo aver completato l'aggiornamento manualmente?

Risposte:


16

Prova questo:

Apri un terminale,

Premi Ctrl+ Alt+T

Eseguirlo:

sudo -i

apt-get update

apt-get autoremove

apt-get clean

UNUSCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')

apt-get remove --purge $UNUSCONF

NEWKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')

ADDKERNEL="linux-(image|headers|ubuntu-modules|restricted-modules)"

METAKERNEL="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"

UNUSKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $ADDKERNEL |grep -vE $METAKERNEL|grep -v $NEWKERNEL)

apt-get remove --purge $UNUSKERNELS

update-grub

1
Grazie, quei comandi sono esattamente ciò che voglio, il principale è dpkg -l|grep "^rc"|awk '{print $2}'che mostra i pacchetti da rimuovere. Questo è strano che apt-get o aptitude non vogliono vederlo per la rimozione.
Murz,

2
Comando CLI di una linea per rimuovano i pacchetti obsoleti dopo fallito do-release-upgrade, sulla base di esempio è: sudo dpkg -l|grep "^rc"|awk '{print $2}' | xargs sudo apt-get remove -y --purge. Attenzione, questo comando rimuove i pacchetti senza conferma, ma è utile per automatizzare rapidamente i sistemi di pulizia.
Murz,

Sul mio sistema i '^rc'pacchetti contrassegnati non erano nemmeno installati, ma l'aggiornamento non è riuscito proprio prima di cercare pacchetti obsoleti. Quindi questa risposta sembra incompleta. Questo non rimuoverà tutti i pacchetti che sarebbero presenti do-release-upgrade, se avesse successo.
Ruslan,

2

Credo che il "Rimuovi pacchetti obsoleti" in realtà esegua solo un sudo apt-get autoremove. Provalo, vedi se aiuta.


2
sudo apt-get autoremoveè rimuovere solo una piccola parte dei pacchetti, che rimuove do-release-upgrade, ad esempio do-release-upgradesullo stesso sistema, rimuove circa 150 pacchetti, ma apt-get autoremove- rimuove solo circa 5-10 pacchetti.
Murz,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.