Parfois, lorsque je mets à niveau un système via do-release-upgrade
, le processus de mise à jour échoue et le script me dit de terminer le processus manuellement via dpkg --configure -a
. Ce n'est pas un problème grave - après avoir résolu manuellement le problème des dépendances et le processus de mise à niveau finale, tout fonctionne correctement.
Mais le script do-release-upgrade
a un processus de nettoyage une fois la mise à niveau terminée:
Remove obsolete packages?
XXX packages are going to be removed.
Continue [yN] Details [d]y
qui supprime certains paquets obsolètes de l'ancienne version du système.
Il semble que ce processus ne s'exécute pas lorsque la mise à niveau automatique échoue et que je termine la mise à niveau manuellement. Par conséquent, les packages obsolètes de l'ancienne version restent installés sur le système.
Comment puis-je exécuter manuellement le processus "Supprimer les paquets obsolètes" après avoir terminé la mise à niveau à la main?
Testez ceci:
Ouvrir un terminal,
Presse Ctrl+Alt+T
Exécuter:
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
Je crois que "Supprimer les paquets obsolètes" ne fait que lancer un Sudo apt-get autoremove
. Essayez, voyez si ça aide.
Je trouve que cette réponse à une question non liée pourrait fournir un utilitaire et une commande qui semble supprimer davantage de données non utilisées:
Sudo deborphan | xargs Sudo apt-get -y remove --purge