web-dev-qa-db-fra.com

Comment supprimer les paquets obsolètes après l'échec de la mise à niveau d'une version via do-release-upgrade sur Ubuntu?

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?

13
Murz

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
15
kyodake

Je crois que "Supprimer les paquets obsolètes" ne fait que lancer un Sudo apt-get autoremove. Essayez, voyez si ça aide.

2
Dan Johansen

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:

  1. Installez le paquet "deborphan".
  2. Sudo deborphan | xargs Sudo apt-get -y remove --purge
1
DustWolf