È stato rilasciato lo strumento per la gestione dei pacchetti APT 3.0.0 (Advanced Package Tool), che include le modifiche accumulate nel ramo sperimentale 2.9. Il nuovo rilascio è stato accettato nel ramo Debian Unstable e sarà integrato a breve nel repository Debian Testing, dove si sta sviluppando il rilascio di Debian 13 e viene già utilizzato il ramo sperimentale APT 2.9, e sarà anche aggiunto nel database dei pacchetti di Ubuntu.
Tra le modifiche più importanti:
- È stato riprogettato l'interfaccia utente, in cui è stata implementata una visualizzazione più chiara dell'elenco delle dipendenze necessarie per il download durante l'installazione di un pacchetto. Se prima i nomi dei pacchetti con le dipendenze venivano visualizzati in un elenco continuo, ora vengono suddivisi in colonne in stile 'ls -C', e diversi blocchi di output sono evidenziati con colori diversi (ad esempio, i pacchetti da rimuovere sono messi in evidenza in rosso, mentre quelli da installare in verde). È stata eliminata la ripetizione di menzioni di pacchetti aggiuntivi e nuovi (le sezioni

- È stata implementata la paginazione automatica per l'output dei comandi 'show', 'policy', 'list', 'search' e 'showsrc'. La paginazione viene attivata tramite l'impostazione Binary::apt::Pager, e l'applicazione per la paginazione è definita tramite la variabile d'ambiente PAGER.
- È stato implementato un motore per la risoluzione delle dipendenze migliorato, Solver3 (attivato tramite l'opzione '—solver 3.0'), in cui per risolvere i conflitti tra le dipendenze è stato utilizzato un algoritmo di ricerca con backtracking. Nel nuovo motore è stato migliorato anche il selettore di versioni, è stata garantita la compatibilità con l'esecuzione di aggiornamenti in più fasi, la performance è stata significativamente migliorata (apt-test ora viene eseguito due volte più velocemente), è stata aggiunta l'opzione '—no-strict-pinning' per l'installazione di versioni sperimentali, è stata aggiunta una protezione contro la rimozione manuale di pacchetti installati, e la rimozione automatica delle dipendenze non utilizzate è stata resa più aggressiva. Sono state fornite spiegazioni più comprensibili per gli utenti comuni sugli errori relativi alle dipendenze.
- L'uso dello strumento apt-key per la gestione delle chiavi utilizzate per la verifica delle firme digitali dei pacchetti è stato interrotto. Lo strumento apt-key è stato dichiarato obsoleto alcuni anni fa a causa del passaggio da un vecchio modello di verifica dell'integrità dei pacchetti, che utilizzava un archivio chiavi comune (/etc/apt/trusted.gpg) e non legava le chiavi ai repository, cioè una chiave aggiunta per un repository di terze parti era valida per la verifica dei pacchetti su tutti i repository. Il metodo che sostituisce apt-key prevede la separazione degli archivi chiavi per ogni repository (/etc/apt/trusted.gpg.d/ o /etc/apt/keyrings/).
- È stata aggiunta la possibilità di utilizzare l'utilità sqv del progetto Sequoia per verificare le firme digitali invece di chiamare gpgv. È stata aggiunta al percorso delle chiamate di gpg l'utilità gpg-sq scritta in Rust, che accetta gli stessi argomenti dell'utilità gpg, ma simula il suo funzionamento tramite Sequoia, l'implementazione OpenPGP in Rust. La chiamata a gpg-sq ha la priorità rispetto a gpg, cioè per utilizzare gpg-sq al posto di gpg è sufficiente installare il pacchetto corrispondente.
- È stato aggiunto un backend crittografico per la libreria OpenSSL, che sostituisce GnuTLS e Gcrypt.
- È stata fornita l'associazione tra i tipi di chiavi e le estensioni dei file: l'estensione «.asc» è collegata alle chiavi ascii-armored, «.gpg» sempre alle chiavi binarie, mentre tutte le altre estensioni di file genereranno un errore. Ad esempio, quando si utilizza un file chiave «/etc/apt/keyrings/winehq-archive.key», dovrà essere rinominato in «/etc/apt/keyrings/winehq-archive.gpg» e il percorso nel file dovrà essere corretto in «/etc/apt/sources.list.d/». È stata implementata la possibilità di verificare autonomamente gli archivi chiavi e di eseguire l'operazione dearmor (conversione di una chiave in formato ASCII-armored in formato binario) senza ricorrere a apt-key.
- Numerose funzioni sono state convertite per utilizzare la classe «std::string» al posto di «const char *» (la classe std::string_view definita nello standard C++17, che lavora in modo più efficiente con le stringhe usando riferimenti ai dati esistenti e evitando copie superflue di dati finché non vengono utilizzati nel codice).
- È stata proposta un'interfaccia astratta per lavorare con gli hash, realizzata nell'ambito del lavoro per eliminare la rigida dipendenza da una singola libreria crittografica.
- Nell'output del comando «apt show —full» è stata aggiunta l'informazione sul pinning dei pacchetti, ricavata dai campi APT-Pin, APT-Candidate e APT-Release.
- È raccomandato ufficialmente di denominare i file nella directory /etc/apt/sources.list.d/ con il nome dell'attuale fornitore in minuscolo («$(dpkg-vendor —query Vendor | tr A-Z a-z).sources»).
- Nel pkgDepCache è stata aggiunta la supporto alle transazioni e ai contatori degli aggiornamenti.
- È stata aggiunta l'opzione «—comment» per lasciare un commento, che verrà memorizzato nella cronologia delle operazioni eseguite.
- È stata aggiunta la supporto all'intestazione HTTP Retry-After per ottimizzare la ripresa dei download interrotti.
- Nel comando «apt list» è stata aggiunta l'opzione «—target-release».
- È stato aggiunto un nuovo livello di errore «audit», attivabile tramite l'opzione «—audit».
In aggiunta, si possono notare le modifiche che sono apparse nella versione sperimentale del ramo APT 2.7 (lo sviluppo del ramo 2.7 è passato senza soluzione di continuità allo sviluppo del ramo 2.9), che saranno disponibili in Debian 13 (in Debian 12 è stato utilizzato APT 2.6):
- È stata aggiunta la supporto agli snapshot, controllata tramite l'opzione «—snapshot» («-S»), grazie alla quale è possibile accedere ai server dei repository che supportano snapshot e selezionare uno stato specifico dell'archivio del repository. Ad esempio, specificando «—snapshot 20250405T081400Z» è possibile lavorare su un'istantanea dello stato del repository, registrata il 5 aprile 2025 alle 08:14:00. Gli snapshot vengono configurati nella sezione APT::Snapshot nei file sources-list.
- È stata implementata l'opzione «—update» («-U»), che consente durante l'esecuzione di comandi di installazione o aggiornamento dei pacchetti (apt install o apt upgrade) di avviare automaticamente l'operazione «apt update» per sincronizzare gli indici prima di aprire la cache e elaborare sources.list.
- È stato aggiunto il comando ‘dist-clean’ per rimuovere i pacchetti memorizzati nella cache e le liste dei pacchetti scaricati.
Fonte: opennet.ru

