Ein Release des APT 3.0.0 (Advanced Package Tool) Management-Tools wurde erstellt, das die in der experimentellen Version 2.9 gesammelten Änderungen umfasst. Die neue Version wurde in den Debian Unstable Branch übernommen und wird in naher Zukunft in die Debian Testing Repository integriert, wo das Release Debian 13 entwickelt wird und die experimentelle Version APT 2.9 bereits verwendet wird. Sie wird außerdem in die Paketdatenbank von Ubuntu aufgenommen.
Zu den wichtigsten Änderungen gehören:
- Die Benutzeroberfläche wurde überarbeitet und bietet jetzt eine übersichtlichere Darstellung der Abhängigkeiten, die beim Installieren eines Pakets geladen werden müssen. Früher wurden die Paketnamen der Abhängigkeiten in einer langen Liste angezeigt, nun werden sie in Spalten im Stil des Befehls „ls -C“ aufgeteilt, und verschiedene Ausgabebereiche werden in unterschiedlichen Farben hervorgehoben (z. B. werden zu entfernende Pakete rot und zu installierende grün hervorgehoben). Bei der Ausgabe wurden doppelte Erwähnungen zusätzlicher und neuer Pakete entfernt (die Abschnitte „NEW packages“ und „additional packages“ wurden zusammengelegt). Für die Farbanpassungen wurden die Einstellungen „APT::Color::*“ und „APT::Configuration::color“ sowie die Optionen „—color“ und „—no-color“ hinzugefügt.

- Die automatische Seitentrennung für die Ausgaben der Befehle „show“, „policy“, „list“, „search“ und „showsrc“ wurde implementiert. Die Seitentrennung wird über die Einstellung Binary::apt::Pager aktiviert, und die Anwendung zur Seitenaufteilung wird über die Umgebungsvariable PAGER bestimmt.
- Ein verbesserter Abhängigkeitsauflösungs-Engine Solver3 wurde implementiert (aktiviert über die Option „—solver 3.0“), bei dem ein Rückverfolgen-Algorithmus zur Lösung von Konflikten zwischen Abhängigkeiten verwendet wird. Im neuen Engine wurde auch die Auswahl von Versionen verbessert, die Unterstützung für mehrstufige Updates gewährleistet, die Leistung erheblich gesteigert (apt-test wird nun doppelt so schnell ausgeführt), die Option „—no-strict-pinning“ für die Installation experimenteller Versionen hinzugefügt, ein Schutz gegen das manuelle Entfernen von installierten Paketen implementiert und die Aggressivität beim automatischen Entfernen ungenutzter Abhängigkeiten erhöht. Außerdem wurden verständlichere Erklärungen für Fehler im Zusammenhang mit Abhängigkeiten für normale Benutzer hinzugefügt.
- Die Nutzung des Tools apt-key zur Verwaltung von Schlüsseln, die zur Überprüfung digitaler Paketunterschriften verwendet werden, wurde eingestellt. Das Tool apt-key wurde vor einigen Jahren als veraltet erklärt, da das alte Modell der Integritätsprüfung von Paketen, das ein gemeinsames Schlüsselspeicher (\/etc\/apt\/trusted.gpg) verwendete und keine Bindung von Schlüsseln an Repositories hatte, abgelöst wurde. Dies bedeutete, dass ein Schlüssel, der für ein externes Repository hinzugefügt wurde, zur Überprüfung von Paketen in allen Repositories verwendet werden konnte. Das an die Stelle von apt-key tretende Schlüsselmanagementsystem sieht eine Trennung der Schlüsselspeicher für jedes Repository (\/etc\/apt\/trusted.gpg.d\/ oder \/etc\/apt\/keyrings\/) vor.
- Die Möglichkeit, das Tool sqv aus dem Sequoia-Projekt zur Überprüfung digitaler Unterschriften anstelle von gpgv zu verwenden, wurde hinzugefügt. In die Pfade für den Aufruf von gpg wurde das in Rust geschriebene Tool gpg-sq aufgenommen, das dieselben Argumente wie das Tool gpg annimmt, aber dessen Funktionalität über Sequoia, die OpenPGP-Implementierung in Rust, emuliert. Der Aufruf von gpg-sq hat eine höhere Priorität als gpg, das heißt, um gpg-sq anstelle von gpg zu verwenden, genügt es, das entsprechende Paket zu installieren.
- Ein Krypto-Backend für die OpenSSL-Bibliothek wurde hinzugefügt, das GnuTLS und Gcrypt ersetzt.
- Die Bindung von Schlüsseln zu Dateiendungen wurde sichergestellt: Die Endung „.asc“ ist mit ascii-armored Schlüsseln verknüpft, „.gpg“ immer mit binären Schlüsseln, während alle anderen Dateiendungen einen Fehler auslösen. Zum Beispiel muss eine Datei mit dem Schlüssel „\/etc\/apt\/keyrings\/winehq-archive.key“ in „\/etc\/apt\/keyrings\/winehq-archive.gpg“ umbenannt und der Pfad in der Datei „\/etc\/apt\/sources.list.d\/“ angepasst werden. Die Unterstützung für die eigenständige Überprüfung von Schlüsselspeichern (keyring) und die Durchführung der dearmor-Operation (Umwandlung eines ASCII-armored Schlüssels in ein binäres Format) ohne Bezugnahme auf apt-key wurde implementiert.
- Viele Funktionen wurden auf die Verwendung der Klasse „std::string“ anstelle von „const char *“ umgestellt (eine im C++17 Standard definierte Klasse, die std::string_view effizienter mit Strings umgehen kann, indem sie Referenzen auf vorhandene Daten nutzt und unnötige Datenkopien vermeidet, solange sie nicht im Code verwendet wird).
- Es wurde eine abstrakte Schnittstelle für die Arbeit mit Hashes vorgeschlagen, die im Rahmen der Bemühungen zur Beseitigung der festen Bindung an eine bestimmte kryptografische Bibliothek realisiert wurde.
- Im Befehl «apt show —full» wurde Informationen zum Festlegen von Paketen (Pinning) hinzugefügt, die aus den Feldern APT-Pin, APT-Candidate und APT-Release stammen.
- Es wird empfohlen, die Dateien im Verzeichnis /etc/apt/sources.list.d/ mit dem aktuellen Anbieter in Kleinbuchstaben zu benennen (»$(dpkg-vendor —query Vendor | tr A-Z a-z).sources«).
- Im pkgDepCache wurde die Unterstützung für Transaktionen und Aktualisierungszähler hinzugefügt.
- Die Option «—comment» wurde hinzugefügt, um einen Kommentar zu hinterlassen, der in der Historie der durchgeführten Operationen gespeichert wird.
- Die Unterstützung für den HTTP-Header Retry-After wurde hinzugefügt, um die Wiederaufnahme unterbrochener Downloads zu optimieren.
- Dem Befehl «apt list» wurde die Option «—target-release» hinzugefügt.
- Ein neues Fehlerlevel «audit» wurde hinzugefügt, das über die Option «—audit» aktiviert werden kann.
Zusätzlich können die Änderungen, die in der experimentellen APT 2.7-Branch (die Entwicklung des 2.7-Zweigs ging nahtlos in die Entwicklung des 2.9-Zweigs über) aufgetreten sind, festgehalten werden, die in Debian 13 verfügbar sein werden (in Debian 12 wird APT 2.6 genutzt):
- Die Unterstützung für Snapshots wurde hinzugefügt, die über die Option «—snapshot» («-S») gesteuert wird, mit der auf Repository-Server zugegriffen werden kann, die Snapshots unterstützen, und ein bestimmter Zustand des Repository-Archivs ausgewählt werden kann. Zum Beispiel kann durch Angabe von «—snapshot 20250405T081400Z» mit dem Zustand des Repositories gearbeitet werden, der am 5. April 2025 um 08:14:00 festgehalten wurde. Snapshots werden im Abschnitt APT::Snapshot in den sources-list-Dateien konfiguriert.
- Die Option «—update» («-U») wurde implementiert, die es ermöglicht, beim Ausführen von Installations- oder Aktualisierungsbefehlen (apt install oder apt upgrade) automatisch die Operation «apt update» zur Synchronisierung der Indizes vor dem Öffnen des Cache und der Verarbeitung der sources.list zu starten.
- Der Befehl ‘dist-clean’ wurde hinzugefügt, um die im Cache gespeicherten Pakete und die Listen der heruntergeladenen Pakete zu entfernen.
Quelle: opennet.ru

