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:
Muchas gracias.
Muy útil y claro.