Deb822. apt modernize-source
Cambios que hay en la gestión de la paquetería
¿Qué es el formato DEB822?
El formato DEB822 es una nueva forma de definir los repositorios APT en Debian y sus derivados (Ubuntu ó Mint), se reemplaza el clásico formato de una sola línea (sources.list
) por un formato más estructurado y legible basado en bloques de configuración.
Cambios clave
- Antes: Cada repositorio se definía en una sola línea dentro de archivos
.list
- Ahora: Se usa un formato de múltiples líneas en archivos
.sources
, con campos claramente definidos comoTypes
,URIs
,Suites
,Components
, etc.
Ventajas del formato DEB822
- Más legible y organizado, especialmente útil para configuraciones complejas.
- Facilita el análisis automático por herramientas y scripts.
- Permite comentarios y separación clara entre repositorios.
- Mejora la seguridad al eliminar el uso de
apt-key
en favor de campos comoSigned-By
.
Ubicación
Ahora todos los archivos .sources
se encuentran en la ruta: /etc/apt/sources.list.d/
Recomendación
Se recomienda trabajar con el nuevo formato .source
para la lista de repositorios del equipo, pero puedes seguir utilizando el formato .list
para gestionar los repositorios sin ningún problema.
Transformar de .list
a .source
Puedes transformar de un modo muy simple todos los ficheros .list
al nuevo .source
tan solo tienes que ejecutar el siguiento comando:
sudo apt modernize-sources
Copia de seguridad para una vuelta atrás
Si no te sientes cómodo con este formato no hay problema, Debian te deja una copia de tus ficheros .list
renombrados como .list.bak
Comparación de Formatos
Os pongo la comparación del repositorio de soloconlinux en formato .list
y transformato en .source
Formato .list:
deb [arch=amd64 signed-by=/etc/apt/keyrings/soloconlinux.gpg] http://repositorio.soloconlinux.org.es/ trixie main contrib non-free
Todo en una única línea
Formato .source:
Types: deb
URIs: http://repositorio.soloconlinux.org.es/
Suites: trixie
Components: main contrib non-free
Signed-By: /etc/apt/keyrings/soloconlinux.gpg
El formato está mśs claro ya que cada apartado está en una línea diferente.
El comando apt
es estéticamente más moderno, además de mucho más rápido.
Saltamos de la versión 2.61 de bookworm a la versión 3.02
en Debian 13.
Solución a Avisos/Errores con el nuevo formato .source
Si has transformado tus fichero de fuentes de repositorio, puede al realizar el comando apt update
te aparezcan avisos incómodos en la línea de comandos.
Te muestro algunos de los errores y avisos y como puedes solucionarlo:
- Error/Aviso: No se admite la arquitectura «i386»
Notice: Omitiendo el uso del fichero configurado «main/binary-i386/Packages» ya que el repositorio «https://deb.nodesource.com/node_x.y nodistro InRelease» no admite la arquitectura «i386»
Solución: Edita el fichero .source
que produce el error e incluye en el que se utilice solo tu arquitectura (amd64), para ello incluye la siguiente línea al final del fichero:
Architectures: amd64
Ejecuta de nuevo apt update
y el error deberá haber desaparecido.
Al igual que en el formato .list
se permite incluir más arquitecturas, simplemente separalas por una coma ,
- Error/Aviso: Falta la firma en ...
Notice: Missing Signed-By in the sources.list(5) entry for 'http://deb.debian.org/debian'
El error se debe a que el fichero .source
generado en el proceso de "modernización" se ha quedado sin referenciar a ninguna clave.
Solución:
Revisa todos los ficheros de nombre debian*.source
Edita la línea que pone: Signed-By:
y completala con la firma, deberá quedar de la siguiente forma:
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
- Error/Aviso: Se rechazará la firma en un año
Warning: https://repo.sitio.com/ruta/dists/stable/InRelease: Policy will reject signature within a year, see --audit for details
Uno de los problemas más habituales es que el repositorio del sitio del que estés usando su paquetería este usando una version deprecada para firmar las imágenes.
Solución:
Revisa usando el comando apt update --audit
la información que devuelve para determinar el error exacto.
Los problemas más habituales son:
- El repositorio del sitio esté usando una version deprecada para firmar las paquetería de su sitio:
SHA1 is not considered secure
[arch=amd64] in new source file - El sitio no permite revocar una firma:
Policy rejected non-revocation signature
Desactivar un repositorio
La opción recomendada es editar el fichero .source
e incluir en el la siguiente línea:
Enabled: no
Para activarlo cambia el valor no
por yes
Otra opción es el renombrado del fichero, para desactivar un repositorio, tan sólo tienes que añadir a su extensión un .bak
para que sea ignorado por el gestor de paquetes.
No vale con que lo nombres como .OLD
, .BACKUKP
ó .ANTIGUO
, etc.
Debe de renombrarse con .bak
Desactivar comprobacion de Claves [NO RECOMENDADO]
Puede ser que por algun motivo no quieras que de un repositorio en particular se verifique que los paquetes a instalar son los oficiales y están firmados por el desarrollador y/o el sitio del que los descargas.
Para ello deberás incluir la línea, para deshabilitar las opciones de apt-secure
:
Trusted: yes
¡ No recomendado !
Lista detallada de los bloques en .sources
Para que conozcais un poco más sobre los bloques (campos) que puede contener un archivo .sources
en el nuevo formato DEB822, os dejo una lista detallada junto con los valores posibles más comunes para cada uno:
Campos del formato DEB822
Campo deb822 | Descripción | Valores posibles / Ejemplos |
---|---|---|
Types | Tipo de repositorio | deb , deb-src |
URIs | Dirección del repositorio | https://deb.debian.org/debian , http://mirror.example.com/debian |
Suites | Distribución o versión | stable , testing , unstable , bookworm , trixie , etc. |
Components | Secciones del repositorio | main , contrib , non-free , non-free-firmware |
Architectures | Arquitecturas soportadas | amd64 , i386 , arm64 , etc. |
Signed-By | Ruta al archivo de clave GPG para verificar firmas | /usr/share/keyrings/debian-archive-keyring.gpg |
Check-Valid-Until | Verifica si el repositorio tiene fecha de expiración | yes , no |
Enabled | Activa o desactiva el bloque | yes , no |
Allow-Insecured | Permitir Inseguro Permitir Debil Permitir degradar a inseguro | yes , no Usar con precaución, se ignoran las verificaciones de seguridad |
Trusted | Indica si se confía en el repositorio sin verificación de firma | yes , no Usar con precaución, confia en repositorio aunque la clave no sea correcta |
Acquire-By-Hash | Permite usar hash para adquirir archivos | yes , no |
Targets | Define qué tipos de archivos se deben adquirir | Ejemplo: Packages , Sources , Release |
Label | Etiqueta descriptiva del repositorio | Texto libre, por ejemplo: Debian Oficial , Repositorio Docker |
Description | Descripción del bloque | Texto libre |
MD5Sum , SHA1 , SHA256 | Hashes opcionales para verificación manual | Valores hash en formato hexadecimal |