GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿por qué Apt Autoremove no elimina todos los paquetes antiguos del kernel a la vez?

He estado actualizando el kernel de nuestros servidores Ubuntu desde que lanzaron un parche para la vulnerabilidad Meltdown. Me di cuenta de que prácticamente en todos los servidores, después de reiniciar tengo que ejecutar apt autoremove dos veces para que limpie todos los núcleos antiguos que todavía están en el sistema.

Si lo ejecuto por primera vez, primero elimina dos versiones antiguas del kernel:

% sudo apt autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-headers-4.4.0-103 linux-headers-4.4.0-103-generic linux-headers-4.4.0-104 linux-headers-4.4.0-104-generic linux-image-4.4.0-103-generic linux-image-4.4.0-104-generic
  linux-image-extra-4.4.0-103-generic linux-image-extra-4.4.0-104-generic
0 upgraded, 0 newly installed, 8 to remove and 2 not upgraded.
After this operation, 596 MB disk space will be freed.

Pero luego, una vez hecho esto, ejecuto apt autoremove de nuevo, elimina una versión anterior:

% sudo apt autoremove
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-headers-4.4.0-96 linux-headers-4.4.0-96-generic linux-image-4.4.0-96-generic linux-image-extra-4.4.0-96-generic
0 upgraded, 0 newly installed, 4 to remove and 2 not upgraded.
After this operation, 298 MB disk space will be freed.

Me pregunto, ¿por qué no puede hacer esto de una sola vez?

Respuesta aceptada:

Los scripts de mantenimiento del kernel, específicamente /etc/kernel/postinst.d/apt-auto-removal , cree una lista de kernels para conservar, almacenada como configuración de APT en /etc/apt/apt.conf.d/01autoremove-kernels . Este proceso mantiene el kernel que se está ejecutando actualmente, el kernel que se está configurando y los dos últimos kernels instalados.

Presumiblemente, la última vez que se ejecutó el script antes de su primera limpieza, -96 terminó protegido porque cayó en una de esas categorías. Después de su primera limpieza, ya no funcionó y se convirtió en candidato para su eliminación. Si quieres averiguar por qué , el 01autoremove-kernels el archivo contiene información de depuración; mirarlo antes de la primera limpieza, y nuevamente después, debería revelar por qué varias versiones del kernel están protegidas.

La eliminación automática del kernel es intencionalmente conservadora y peca de precavido. Puede lidiar con esto automáticamente (eventualmente) usando unattended-upgrades; vea la wiki de Ubuntu para más detalles.


Linux
  1. Cómo usar el comando apt para administrar paquetes en Linux

  2. ¿Por qué pr_debug del kernel de Linux no da ningún resultado?

  3. ¿Por qué Bash está en todas partes (en la mayoría, si no en todas, las distribuciones de Linux)?

  4. ¿Por qué yum updateinfo no muestra todas las actualizaciones?

  5. ¿Eliminar completamente todos los paquetes que instalé?

Comando apt en Linux

¿Por qué Apt-get Autoremove no elimina los núcleos antiguos?

Comando apt Linux con ejemplos

¿Por qué Windows no reconoce los archivos dentro de las particiones de Linux?

¿Por qué esta expresión regular no funciona en Linux?

Logrotate no elimina los registros antiguos