18 votes

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

Parfois, lorsque je mets à jour un système via do-release-upgrade Le processus de mise à jour échoue et le script me demande de terminer le processus manuellement via dpkg --configure -a . Il ne s'agit pas d'un problème grave - après avoir résolu manuellement le problème des dépendances et avoir terminé le processus de mise à niveau, tout fonctionne bien.

Mais le do-release-upgrade script a un processus de nettoyage après la fin de la mise à jour :

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, de sorte que les paquets obsolètes de l'ancienne version restent installés dans le système.

Comment puis-je exécuter manuellement le processus "Remove obsolete packages" après avoir terminé la mise à niveau à la main ?

26voto

kyodake Points 13991

Testez ceci :

Ouvrez un terminal (appuyez sur Ctrl + Alt + T ).

Exécutez ceci :

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

2voto

Dan Johansen Points 942

Je crois que la fonction "Supprimer les paquets obsolètes" exécute en fait simplement un sudo apt-get autoremove . Essayez-le, vous verrez si cela vous aide.

2voto

DustWolf Points 375

Je trouve que cette réponse à une question sans rapport avec le sujet pourrait fournir un utilitaire et une commande qui semblent supprimer une plus grande partie des éléments inutilisés :

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

0voto

Scobal Points 5943

En consultant les journaux de mise à jour dans /var/log/dist-upgrade , il y a une ligne dans main.log :

main.log:2020-12-23 21:01:53,154 DEBUG Obsolete: linux-headers-5.4.0-56-generic linux-hwe-5.4-headers-5.4.0-56 linux-image-5.4.0-56-generic linux-modules-5.4.0-56-generic linux-modules-extra-5.4.0-56-generic msgpack-tools slirp4netns

I piense en la désinstallation de ces derniers combinée à la apt-get autoremove devrait faire la même chose que ce qu'aurait fait la mise à niveau si elle s'était déroulée jusqu'à son terme.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X