Debian setzt deb822 für die Quellenliste um

Das Advanced Package Tool (APT) und die Komponenten drumherum sind seit einiger Zeit im Umbau. Das begann mit der Entfernung von apt-key, das bis dahin zur Verwaltung der zur Paketverwaltung APT gehörenden Schlüssel zur Absicherung der Repositories diente. Nach einer Zeit der Warnungen funktionierte apt-key ab Mai 2022 weder in Debian Unstable noch in Ubuntu.

In der Folge wurden mehrere Stellen vorgeschlagen, an denen die Schlüssel abgelegt werden sollten, darunter /etc/apt/trusted.gpg.d und /usr/share/keyrings. Besonders für Repositories aus dritter Hand war der Weg zu einem Eintrag in der Quellenliste ohne apt-key umständlich und fehleranfällig. Deshalb regte APT-Maintainer Julian Andres Klode bereits 2021 die Nutzung eines neuen Formats für Quellenangaben an, das seit 2015 mit APT 1.1 unterstützt, aber bis dahin nicht genutzt wurde: deb 822.

Dieses Format sollte die Probleme der Dateilänge, der Duplizierung und der maschinellen Lesbarkeit, die im bisherigen Ein-Zeilen-Stil-Format auftreten, lösen. Der entscheidende Vorteil, der den Wegfall von apt-key und die daraus entstandenen Umstände kompensieren kann, ist zudem die Option der direkten Einbindung der Schlüssel in das neue Quelllistenformat.

In Vorbereitung auf die neue Hauptversion APT 3.0 werden seit v2.9.0 diverse Neuerungen eingeführt. Mit v2.9.3 wurde ein neuer Solver vorgestellt, der unter anderem für eine bessere Auflösung von Abhängigkeiten sorgen und Konflikte bei der Installation bereinigen soll. Vor kurzem erschien in Debian Unstable nun v2.9.23, das die Einführung von deb822 vorbereitet. Derzeit zeigt sich das lediglich durch einen Hinweis bei der Aktualisierung der Quellenliste mit dem Befehl apt update und der Aufforderung, die Migration zu deb822 in Betracht zu ziehen.

Die Funktionalität von APT bei der Aktualisierung des Paketbestands wird davon derzeit nicht eingeschränkt.

Bisher wurde ein Quelleneintrag in /etc/apt/sources.list.d abgelegt, bestand aus einer Zeile pro Quelle und wurde mit der Endung .list gespeichert.

Das Format deb822 gibt die Informationen zu einer Paketquelle in mehreren Zeilen an. Zwischen den Zeilen mit Angaben zu einer Quelle darf keine Leerzeile sein. In einer Datei im deb822-Format können Informationen zu mehreren Paketquellen enthalten sein, die Blöcke für die jeweiligen Quellen müssen dabei durch eine Leerzeile getrennt sein. Ein nach deb822 konformer Eintrag der gleichen Quelle sieht dann im einfachsten Fall so aus:

Anstatt den Pfad zum Schlüssel für das Repository einzutragen, kann auch der Schlüssel selbst in den Quelleintrag einfügt werden, womit alles an einer Stelle liegt:

Wird der Schlüssel in der Datei direkt eingetragen, so ist zu beachten, daß der gesamte Block nach Signed-By: mit einem Leerzeichen eingerückt wird. Vorhandene Leerzeilen müssen ein Zeichen enthalten; es reicht ein Punkt wie in obigem Beispiel.

Diese Einträge werden nicht mehr mit der Endung .list sondern mit .sources abgespeichert. Derzeit kann die Quellenliste aus einer Mischung aus beiden Formaten bestehen. Vermutlich wird sich das aber ändern und .sources den Vorzug bekommen. Der Eintrag einer Quelle in beiden Formaten ist bereits jetzt nicht möglich, es sei denn, einer der Einträge ist per # auskommentiert. Ob deb822 bereits im Sommer mit Debian 13 "Trixie" verbindlich wird, ist unklar. Dazu müsste aber zunächst APT 3.0 in stabiler Version erscheinen. Bei Ubuntu ist deb822 seit 24.04 für die eigenen Paketquellen bereits Standard.

Wenn es nach Klode und anderen Entwicklern geht, so wird künftig OpenGPG zur Absicherung von Repositories vom auf dem Algorithmus Ed25519/SHA512 basierten aptsign abgelöst.

Update vom 29.01. 2025:
Wir haben über die in Debian Unstable eingeführte Umstellung der Quellenliste auf das Format deb822 informiert. Gegen das neue Format ist nichts einzuwenden, jedoch war die Art und Weise, wie dies angekündigt wurde, alles andere als benutzerfreundlich. Jetzt könnte man einwenden, es sei ja immerhin Debian Unstable und das nutze eh kein normaler Sterblicher. Dieser Einwand gilt aber schon lange nicht mehr. Beweis dafür ist unter anderem die seit mittlerweile 14 Jahren herausgegebene Distribution siduction.

Im Forum von siduction gab es einen langen Thread, in dem viele überraschte Anwender nachfragten, was das Ganze soll und wie es zu bewerkstelligen sei. Auch wenn die Methodik klar war, beschwerten sich Anwender mit vielen Einträgen in der Quellenliste verständlicherweise über die zusätzliche Arbeit bei der Umstellung.

Debian legte nach! Sollten noch alte Quellenlisten im .list-Format vorhanden sein, gibt es jetzt ein Upgrade-Tool namens apt modernize-sources. Nun bot dieses Script an, die Umstellung von .list auf .sources inklusive des bereits jetzt vorgeschriebenen Signed-By-Eintrags vorzunehmen.

Damit haben auch die Nutzer von Debian Stable beim Upgrade auf Debian 13 im Sommer eine Sorge weniger. Warum dieses Script nicht vor einer Woche bereitstand, als die Anwender mit den Warnungen überschüttet wurden, müssen wir nicht verstehen.