¿Cómo eliminar paquetes obsoletos después de una actualización de lanzamiento fallida a través de do-release-upgrade en Ubuntu?


14

A veces, cuando actualizo un sistema vía do-release-upgrade, el proceso de actualización falla y el script me dice que termine el proceso manualmente vía dpkg --configure -a. Este no es un problema grave: después de resolver manualmente el problema de dependencias y finalizar el proceso de actualización, todo funciona bien.

Pero el do-release-upgradescript tiene un proceso de limpieza después de finalizar la actualización:

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

que elimina algunos paquetes obsoletos de la versión anterior del sistema.

Parece que este proceso no se ejecuta cuando la actualización automática falla y termino la actualización manualmente, por lo que los paquetes obsoletos de la versión anterior permanecen instalados en el sistema.

¿Cómo puedo ejecutar el proceso "Eliminar paquetes obsoletos" manualmente después de finalizar la actualización a mano?

Respuestas:


16

Prueba esto:

Abrir una terminal,

Presione Ctrl+ Alt+T

Ejecutarlo:

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
Gracias, esos comandos es exactamente lo que quiero, el principal de ellos es dpkg -l|grep "^rc"|awk '{print $2}'que muestra los paquetes para eliminar. Es extraño que apt-get o aptitude no quieran verlo para eliminarlo.
Murz

2
Una línea de comandos CLI para los paquetes obsoletos quitan después de que fallara do-release-upgrade basado en su ejemplo es: sudo dpkg -l|grep "^rc"|awk '{print $2}' | xargs sudo apt-get remove -y --purge. Atención, este comando elimina paquetes sin confirmación, pero es útil para automatizar sistemas de limpieza rápidos.
Murz

En mi sistema, los '^rc'paquetes marcados ni siquiera estaban instalados, pero la actualización falló justo antes de buscar paquetes obsoletos. Entonces esta respuesta parece incompleta. Esto no eliminará todos los paquetes que estarían en do-release-upgradecaso de tener éxito.
Ruslan

2

Creo que "Eliminar paquetes obsoletos" en realidad solo ejecuta a sudo apt-get autoremove. Pruébalo, mira si te ayuda.


2
sudo apt-get autoremovees eliminar solo una pequeña parte de los paquetes, que elimina do-release-upgrade, por ejemplo, do-release-upgradeen el mismo sistema, elimina unos 150 paquetes, pero apt-get autoremoveelimina solo unos 5-10 paquetes.
Murz

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.