By | 11 marzo, 2024

Recientemente he estado actualizando algunos antiguos Debian a la última versión 12 Bookworm; uno de los problemas que surge cuando se tienen repositorios adicionales, distintos a los oficiales (por ejemplo, Docker) es que las llaves que validan los paquetes están en el antiguo archivo trusted.gpg y se muestra el siguiente WARNING:

Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for detail

El sistema actual busca las llaves bajo el directorio /etc/apt/trusted.gpg.d/. Lo bueno que, por ahora, ambos sistemas de llaveros conviven (funcionan indistintamente) pero con la advertencia indicada.

Pasos de solución

Extraer la llave del archivo /etc/apt/trusted.gpg

# apt-key list
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

# apt-key export 0EBFCD88 | gpg --dearmor -o /tmp/docker.gpg

La llave se exporta en un temporal para evitar que el siguiente paso la borre del llavero.

Borrar la clave del antiguo llavero

# apt-key del 0EBFCD88
OK

Incluir la llave exportada en el actual sistema

# mv /tmp/docker.gpg /etc/apt/keyrings/

Indicar en el repo la clave a utilizar

# cat /etc/apt/sources.list.d/docker.list
deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] http...

La indicación signed-by le permite al comando apt encontrar qué nombre se le puso al archivo de la llave que validará el repositorio de paquetes y a su vez, permite colocar los archivos en cualquier lugar (Debian ofrece la carpeta /etc/apt/keyrings/ para este fin)

Se recomienda consultar la sección DEPRECATION de man apt-key, que indica, entre otras cosas:

Except for using ‘apt-key del’ in maintainer scripts, the use of apt-key is deprecated.

man apt-key

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *