Pages

Monday, March 21, 2022

apt-key obsoleto y como mantener solo dos kernels en tu /boot pequeño (256 MB)

Hace tiempo que ignoraba los mensajes del sudo apt update sobre las claves en formato legacy

Hoy me ha dado por hacer la oportuna limpieza

  • Listar claves

sudo apt-key list |less

pub   rsa4096 2014-02-13 [SC] [caduca: 2024-02-11]

428B 5197 DE95 2586 DA52  0298 E49C C041 5DC2 D5CA

uid        [desconocida] Pipelight Dev Team (Package Builder) <webmaster@fds-team.de>

sub   rsa4096 2014-02-13 [E] [caduca: 2024-02-11]

  • Eliminando claves

sudo apt-key remove " 428B 5197 DE95 2586 DA52  0298 E49C C041 5DC2 D5CA"
  • Usando el nuevo formato:
sudo apt-key export "8CAE 012E BFAC 38B1 7A93  7CD8 C5E2 2450 0C12 89C0" |
gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/teamviewer2017.gpg > /dev/null

También he aprovechado para intentar que cuando se actualice el kernel no se quede sin espacio /boot (no puedo ampliarlo de forma sencilla). Tras revisar creo que lo más sencillo debe ser la siguiente solución:

  • Configurar apt para que después de hacer el update verifique si hay actualización del kernel y caso de haberla desinstalar la versión previa a la que actualmente corre el sistema. En /etc/apt/apt.conf.d/99RemovePreviousKernel:
Apt {
Update {
    Post-Invoke {"/usr/local/sbin/eliminarKernels"; };
    };
}
  • El script eliminarKernels es sencillo, aunque aún está por verificar cuando llegue la próxima actualización del kernel:
#!/bin/bash
upgrade=$(apt list --upgradable linux-image-amd64 2> /dev/null |awk -F/ '/\/unstable/ { print $1}')
if [ -n "$upgrade" ];
then
    echo "Encontrado nuevo kernel ($upgrade). Eliminamos kernel anterior ... " >&2
    a_eliminar=$(dpkg -l linux-image-?*amd64 | grep -v $(uname -r) | awk '/^ii/ { print $2} )
    apt purge $a_eliminar
else
    echo "No hay kernel disponible para actualizar"
fi
 

No comments:

Post a Comment