Paketquellen im Format deb822
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 24.04 Noble Numbat
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Dateien mit der Namensendung .sources enthalten Information zu Paketquellen im Format deb822 🇬🇧 für das APT Paketmanagementsystem, welches auch Ubuntu standardmäßig nutzt. Solche Dateien sind der designierte Nachfolger der Datei sources.list bzw. allgemein von Angaben zu Paketquellen über Dateien mit der Namensendung .list; diese enthalten die gleichen Informationen im alten, einzeiligen Format.
Ubuntu macht die Verwendung des Formats deb822 ab Ubuntu 24.04 LTS für die eigenen Paketquellen zum Standard. Wer weitere Paketquellen hinzufügen möchten kann dies in Form vom Dateien mit Namensendung .sources machen, auch in Ubuntu Versionen vor 24.04. Das ältere Format in Form von Dateien mit Namensendung .list wird aber auch nach wie vor unterstützt und man kann auf einem System auch beide Dateiarten für verschiedene Quellen mischen.
Installation¶
Die Paketverwaltung ist integraler Bestandteil jeder Ubuntu Installation.
Speicherort und Dateiname¶
Dateien im Format deb822 müssen im Verzeichnis /etc/apt/sources.list.d/ liegen. Der Name der jeweiligen Datei für ein oder mehrere Paketquellen kann im Prinzip beliebig sein und muss auf .sources enden.
Dateistruktur¶
In Dateien nach dem Format deb822 werden die Information zu einer Paketquellen in mehreren Zeilen angegeben, zwischen den Zeilen mit Angaben zu einer Quelle darf keine Leerzeile sein. In einer Datei können Informationen zu mehreren verschiedenen Paketquellen enthalten sein, die Blöcke für die jeweiligen Quellen müssen durch eine Leerzeile getrennt sein. Die Reihenfolge der Zeilen innerhalb eines Blocks zu einer Paketquelle kann beliebig sein.
Es sind pro Paketquelle mindestens drei Zeilen mit den benötigten Angaben Pflicht, Zeilen mit weiteren Angaben können je nach Paketquelle aber notwendig sein.
Beispiel:
Types: deb URIs: http://archive.ubuntu.com/ubuntu Suites: jammy jammy-updates Components: main universe Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
In den Zeilen sind Schlüssel-Wert-Paare eingetragen. Die ersten drei Zeilen mit den Schlüsseln Types
, URIs
und Suites
sind Pflichtzeilen bzw. Pflichtschlüssel, die pro Quelle vorhanden sein müssen. Components
ist optional, im Falle der Ubuntu-Quellen wie im obigen Beispiel aber notwendig, da diese mehrere Komponenten haben. Wie im Beispiel zu sehen ist, können pro Schlüssel mehrere Werte durch ein Leerzeichen voneinander getrennt angegeben werden.
Der Schlüssel Signed-By
für den öffentlichen Signaturschlüssel, mit dem die Quelle signiert ist, muss bei signierten Quellen (wie den Ubuntu Quellen) ebenfalls vorhanden sein.
Hinweis:
Ubuntu erzwingt noch nicht, dass ausschließlich signierte Quellen vorhanden sind. Ab Ubuntu 24.10 erhält man aber eine Warnung bei unsignierten Quellen und für spätere Versionen ist geplant, ausschließlich signierte Quellen zu verwenden.
Im eigenen Interesse sollte man aber immer nur signierte Paketquellen verwenden, um zu verhindern, Software aus möglicherweise kompromittierten Archiven zu installieren.
Außerdem gibt es noch einige weitere Schlüssel, die im obigen Beispiel aber nicht vorkommen. Die Schlüssel haben die folgenden Bedeutungen:
Schlüssel mit Erklärung zu .sources-Dateien | ||
Schlüssel | Pflicht? | Erklärung |
Types | ja | Enthält die Information, welcher Pakettyp berücksichtigt werden soll. Mögliche Werte sind deb für Binärpakete und deb-src für Quellcode-Pakete |
URIs | ja | Ein oder mehrere "Unified Ressource Identifier" der Quelle(n) des Pakets. Kann, wie im obigen Beispiele, eine URL sein, aber auch z.B. file für eine lokale Datei. |
Suites | ja | Kann der Name bzw. die Namen (wie im obigen Beispiel) ein oder mehrere Archive unterhalb der URI oder ein Pfad relativ zur URI. Bei einem Pfad muss dieser mit einem / enden. Wenn die Pakete direkt unter der URI liegen und es keine weiteren Archive oder relativen Pfad gibt, muss hier ./ eingetragen werden. |
Components | nein | Hier wird angegeben, welche Komponente bzw. Komponenten – wie im obigen Beispiel main und universe – aus der Paketquelle gelesen werden sollen. |
Signed-By | nein | Absoluter Pfad zum Speicherort des öffentlichen Schlüssels, mit dem die Paketquelle signiert ist. Schlüssel von Fremdquellen sollte man immer unter /etc/apt/keyrings/ speichern. Alternativ kann der Schlüssel hier auch direkt in Textform abgelegt werden. |
Architectures | nein | Gibt an, für welche CPU-Architektur(en) Pakete gelesen werden sollen. Mögliche Werte sind z.B. amd64 oder arm64 . |
Enabled | nein | Mögliche Werte sind yes (implizite Vorgabe) und no . Gibt an, ob die in diesem Block definierte Paketquelle gelesen werden soll. Setzt man Enabled: no , wird die Quelle nicht berücksichtigt. |
Es gibt noch eine Reihe weiterer möglicher Optionen. Dies sind die gleichen wie für die Einträge in der Datei sources.list. Informationen dazu sind in der Dokumentation 🇬🇧 zu finden.
Schlüssel in Textform ablegen¶
Wie in der obigen Tabelle mit den Erklärungen zu den Schlüsseln erwähnt, kann ein öffentlicher Schlüssel für eine signierte Paketquelle auch direkt in Textform in der Datei abgelegt werden. Dies sieht dann z.B. so aus:
Types: deb URIs: https://typora.io/linux Suites: ./ Architectures: amd64 Signed-By: -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1 . mQENBFfnQVEBCADPtPh703CFkr0xRRZpVoD04jSYn7Kg6DssR+2ItivGup9bu5B9 lKEzIeg1Cjxt5DJwZ1e4ZDMdMX1CjtkIjErvSQ21pjgIWFmj3klh1TblwfxQTupQ ARhhAOdxpLmTz3a20HW7/IMo/0RSZAS1eFkiCEekUY3aqI483UsQUCQ/HYr1QU/f YBLEnlfdS+1L6SzKkop+cwga6Py/r1kQzibvHns8dwY9qvzBiyn41LAc1ytAhTZA UTwYcOvEGcIscEHesy3DsLE1CtHLjPerm21EdAszxWxpQQzi2BhZ9BwzhHMO4KRS lfyJCvFTKZ0LEMljlPOIWze7o4uBaDBWBFdFABEBAAG0G0FibmVyIExlZSA8YWJu ZXJAdHlwb3JhLmlvPokBOAQTAQIAIgUCV+dBUQIbAwYLCQgHAwIGFQgCCQoLBBYC AwECHgECF4AACgkQujALd1Wvz657DwgAtqLc29tRAqNEa28npGHvRiXZcksPJ7cm 9na7nefi1OSgYESCSLOb2JNrtmCc6krCkRKPPQnwSa5jydZ2azZDrvYdRKB8yBnQ PiKMaUX5RdfM4wNDGhBGFlHFBhDKPurOnUml0EqEca6RNmNZR9ach8wFmVMVLkVT 1oiU/KkBWdn11MXZOAVrV2N5smNj1lpe3jJh/sFLTHAcgPRmHjKgsy0e8Rhcz2CS O3IX27C7ddFvW6jxE3seDM5e2O9+ji/a51BmTkUVVYH5AzmJVig9H0Bj1zo4t8qV WhaVREr49CSHJ3gT/yv96qPJsMoCUPSO4q2iRHLW6wYl0upfCskExg== =yAo+ -----END PGP PUBLIC KEY BLOCK------
Wichtig sind dabei zwei Punkte:
Die Zeilen nach
Signed-By:
, welche den Schlüssel in Textform enthalten, müssen mit einem Leerzeichen eingerückt sein.Leerzeilen, wie im obigen Beispiel die 3. Zeile, dürfen nicht leer sein, sondern müssen einen Punkt am Anfang der Zeile anhalten.
Beispiele¶
Format umwandeln¶
Im folgenden Beispiel wird gezeigt, wie man einen Eintrag für Visual Studio Code (Zeile in der Datei sources.list ) in eine entsprechende Datei im Format deb822 umwandelt.
Der Eintrag in der Datei sources.list sieht wie folgt aus:
deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main
Möchte man stattdessen die Paketquelle in einer Datei mit Format deb822 hinterlegen, geht man wie folgt vor: Man legt zuerst eine Datei /etc/apt/sources.list.d/visualstudiocode.sources an. Der Name der Datei kann natürlich auch anders lauten, muss aber auf .sources enden. Dann öffnet man die Datei mit einem Editor mit Root-Rechten[1][2] und fügt folgenden Inhalt ein:
Types: deb URIs: https://packages.microsoft.com/repos/code Suites: stable Components: main Architectures: amd64 arm64 armhf Signed-By: /etc/apt/keyrings/packages.microsoft.gpg
Sofern der unter Signed-By
definierte GPG-Schlüssel an der angegebenen Stelle abgelegt ist, kann man jetzt die Paketquellen neu einlesen und könnte dann Visual Studio Code aus der Fremdquelle installieren.
Pflege über grafische Oberfläche¶
24.04¶
Die Anwendung "Anwendungen & Aktualisierungen" (Programmname: software-properties-gtk bzw. software-properties-qt, je nach der vom System verwendeten Grafikbibliothek) unterstützt das Hinzufügen von Paketquellen im Format deb822 leider noch nicht. Man kann eine Paketquelle aber nach wie vor im einzeiligen Format eingeben und es wird eine entsprechende .list Datei unter /etc/apt/sources.list.d angelegt. Möchte man weitere Paketquellen im Format deb822 hinterlegen, müssen sie wie oben beschrieben mit einem Editor mit Root-Rechten vom Hand erstellt werden.
Hat man eine Paketquelle in Form einer Datei mit Namensendung .sources
wie weiter oben beschrieben über einen Editor hinzugefügt, kann man die Angaben zur Quelle über grafische Anwendung jedoch editieren und speichern.
22.04 und 20.04¶
Ubuntu 22.04 und 20.04 können zwar mit Dateien im Format deb822 umgehen und Anwendungen aus den darin angegebenen Paketquellen installieren, die grafische Anwendung "Anwendungen & Aktualisierungen" kann mit solchen Dateien aber noch nicht umgehen. Dies bedeutet, dass in Dateien im Format deb822 definierte Paketquellen in der Anwendung nicht angezeigt werden und entsprechend nicht editiert oder entfernt werden können. Das Hinzufügen und Editieren von Paketquellen im einzeiligen Format über Dateien mit Namensendung .list
funktioniert natürlich.
Möchte man Dateien mit Namensendung sources
unter Ubuntu 22.04 und 20.04 nutzen, muss man diese wie oben beschrieben mit einem Editor mit Root-Rechten anlegen bzw. editieren.
Synaptic¶
Synaptic greift zum Anlegen von Paketquellen auf die oben genannten Anwendung "Anwendungen & Aktualisierungen" zurück, d.h. es gelten die gleichen Einschränkungen.
Andere Werkzeuge¶
Man darf bei 24.04 noch nicht erwarten, dass alle gängigen grafischen Werkzeuge das neue Format bereits unterstützen. Siehe hierzu die Information von Ubuntu.
Offizielle Quellen¶
Hier findet man als Referenz die Dateiinhalte von /etc/apt/sources.list.d/ubuntu.sources der aktuellen Versionen von Ubuntu ab Ubuntu 24.04 Noble Numbat.
Frühere Versionen von Ubuntu verwenden standardmäßig diese Datei nicht, siehe hierzu den Artikel sources.list.
Ubuntu 24.04 Noble Numbat¶
Types: deb URIs: http://de.archive.ubuntu.com/ubuntu/ Suites: noble noble-updates noble-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb URIs: http://security.ubuntu.com/ubuntu/ Suites: noble-security Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Links¶
intern¶
extern¶
umfangreiche Erklärung 🇬🇧 von Dateien im Format deb822
Information 🇬🇧 von Ubuntu / Canonical zur Verwendung von Dateien im Format deb822 ab Ubuntu 24.04 LTS für die eigenen Paketquellen