Se ha formado el lanzamiento de la herramienta para gestionar paquetes APT 3.0.0 (Advanced Package Tool), que incorpora los cambios acumulados en la rama experimental 2.9. La nueva versión ha sido aceptada en la rama Debian Unstable y pronto será integrada en el repositorio Debian Testing, que está desarrollando la versión Debian 13 y donde ya se utiliza la rama experimental APT 2.9, y también será añadida a la base de paquetes de Ubuntu.
Entre los cambios más importantes:
- Se ha rediseñado la interfaz de usuario, que ahora presenta una visualización más clara de la lista de dependencias necesarias para la descarga al instalar un paquete. Anteriormente, los nombres de los paquetes con dependencias se mostraban en una lista continua, pero ahora se dividen en columnas al estilo de la utilidad 'ls -C', y diferentes bloques de salida se resaltan con sus propios colores (por ejemplo, los paquetes que se eliminan se destacan en rojo, y los que se instalan en verde). Se han eliminado las menciones duplicadas de paquetes adicionales y nuevos (se han fusionado las secciones 'NEW packages' y 'additional packages'). Se han añadido configuraciones para gestionar la coloración 'APT::Color::*' y 'APT::Configuration::color', así como las opciones '--color' y '--no-color'.

- Se ha implementado la paginación automática de la salida de los comandos 'show', 'policy', 'list', 'search' y 'showsrc'. La paginación se activa a través de la configuración Binary::apt::Pager, y la aplicación para la paginación se determina mediante la variable de entorno PAGER.
- Se ha desarrollado un motor de resolución de dependencias mejorado, Solver3 (se activa mediante la opción '--solver 3.0'), que utiliza un algoritmo de búsqueda con retroceso (backtracking) para resolver conflictos entre dependencias. En el nuevo motor, también se ha mejorado la selección de versiones, se ha garantizado el soporte para ejecutar actualizaciones en múltiples etapas, se ha incrementado significativamente el rendimiento (apt-test ahora se ejecuta el doble de rápido), se ha añadido la opción '--no-strict-pinning' para instalar versiones experimentales, se ha implementado una protección contra la eliminación manual de paquetes instalados, y se ha aumentado la agresividad de la eliminación automática de dependencias no utilizadas. Se han agregado explicaciones más comprensibles para los errores relacionados con las dependencias, dirigidas a usuarios comunes.
- Se ha dejado de utilizar la herramienta apt-key para gestionar las claves utilizadas para la verificación de las firmas digitales de los paquetes. La herramienta apt-key fue declarada obsoleta hace algunos años debido a la transición de un antiguo modelo de verificación de integridad de paquetes, que utilizaba un almacén de claves común (/etc/apt/trusted.gpg) y no tenía la vinculación de claves a los repositorios, es decir, una clave añadida para un repositorio externo era válida para verificar paquetes en todos los repositorios. El nuevo método de manejo de claves que reemplaza a apt-key implica la separación de los almacenes de claves para cada repositorio (/etc/apt/trusted.gpg.d/ o /etc/apt/keyrings/).
- Se ha añadido la posibilidad de utilizar la herramienta sqv del proyecto Sequoia para verificar firmas digitales en lugar de invocar gpgv. Se ha incorporado al lista de rutas para invocar gpg una utilidad escrita en Rust llamada gpg-sq, que acepta los mismos argumentos que la herramienta gpg, pero simula su funcionamiento a través de Sequoia, la implementación de OpenPGP en Rust. La invocación de gpg-sq tiene prioridad sobre gpg, es decir, para utilizar gpg-sq en lugar de gpg, simplemente hay que instalar el paquete correspondiente.
- Se ha añadido un backend de criptomonedas para la biblioteca OpenSSL, que reemplaza a GnuTLS y Gcrypt.
- Se ha garantizado la vinculación de tipos de claves a extensiones de archivos: la extensión «.asc» está relacionada con las claves ascii-armored, «.gpg» está siempre asociada a claves binarias, y todas las demás extensiones de archivo generarán un error. Por ejemplo, al utilizar un archivo de clave «/etc/apt/keyrings/winehq-archive.key», debe ser renombrado a «/etc/apt/keyrings/winehq-archive.gpg» y el camino en el archivo corregido a «/etc/apt/sources.list.d/». Se ha implementado soporte para la verificación autónoma de los almacenes de claves (keyring) y la ejecución de la operación de dearmor (conversión de clave de formato ASCII-armored a formato binario) sin recurrir a apt-key.
- Muchas funciones han sido trasladadas para utilizar la clase «std::string» en lugar de «const char *» (una clase definida en el estándar C++17 llamada std::string_view, que trabaja de manera más eficiente con cadenas al utilizar referencias a datos existentes y evita la copia innecesaria de datos hasta que se utilice en código).
- Se ha propuesto una interfaz abstracta para manejar hashes, implementada como parte del trabajo para deshacerse de la rígida dependencia a una sola biblioteca criptográfica.
- Se ha añadido información sobre el fijado de paquetes (pinning) en la salida del comando "apt show --full", obtenida de los campos APT-Pin, APT-Candidate y APT-Release.
- Se recomienda oficialmente nombrar los archivos en el directorio /etc/apt/sources.list.d/ con el nombre del proveedor actual en minúsculas («$(dpkg-vendor --query Vendor | tr A-Z a-z).sources»).
- Se ha añadido soporte para transacciones y contadores de actualizaciones en pkgDepCache.
- Se ha añadido la opción «—comment» para dejar un comentario que se guarda en el historial de operaciones realizadas.
- Se ha añadido soporte para el encabezado HTTP Retry-After para optimizar la reanudación de descargas interrumpidas.
- Se ha añadido la opción «—target-release» al comando «apt list».
- Se ha añadido un nuevo nivel de errores «audit», que se activa mediante la opción «—audit».
Además, se pueden destacar los cambios en la rama experimental APT 2.7 (el desarrollo de la rama 2.7 ha pasado a la rama 2.9), que estará disponible en Debian 13 (Debian 12 utiliza la versión APT 2.6):
- Se ha añadido soporte para instantáneas, controladas por la opción «—snapshot» («-S»), con la cual se puede acceder a servidores de repositorios que soportan instantáneas y elegir un estado específico del archivo del repositorio. Por ejemplo, especificando «—snapshot 20250405T081400Z», se puede trabajar con un corte del estado del repositorio fijado el 5 de abril de 2025 a las 08:14:00. Las instantáneas se configuran en la sección APT::Snapshot en los archivos sources-list.
- Se ha implementado la opción «—update» («-U»), que permite durante la ejecución de comandos de instalación o actualización de paquetes (apt install o apt upgrade) lanzar automáticamente la operación «apt update» para sincronizar los índices antes de abrir la caché y procesar sources.list.
- Se ha añadido el comando ‘dist-clean’ para eliminar paquetes y listas de paquetes descargados guardados en caché.
Fuente: opennet.ru

