3.3. Die Datei /etc/apt/sources.list verstehen

3.3.1. Format der Paketliste

Wie auf UNIX/Linux-Systemen üblich, ist die Konfigurationsdatei /etc/apt/sources.list eine reine Textdatei. Die Einträge darin erfolgen zeilenweise. Jede einzelne Paketquelle beschreiben Sie vollständig in einer separaten Zeile.

Abbildung 3.1. /etc/apt/sources.list im Texteditor nano

werkzeuge/paketquellen-und-werkzeuge/etc-apt-sources.list-verstehen/sources-list-nano.png

Änderungen nehmen Sie mit Hilfe eines beliebigen Texteditors als Benutzer root vor, bspw. mittels vim, emacs oder nano (siehe Abbildung 3.1, „/etc/apt/sources.list im Texteditor nano). Das Kommando apt verfügt zudem über ein Unterkommando namens edit-sources, welches Sie ebenfalls dahin bringt. Es nutzt den von Ihnen konfigurierten Texteditor. Haben Sie darin die Syntaxhervorhebung aktiviert, erfassen Sie die Struktur der einzelnen Einträge leichter und bemerken sofort fehlerhafte Änderungen durch eine entsprechende Einfärbung des Textes.

Sie fügen eine weitere Paketquelle hinzu, indem Sie die Liste um eine weitere Zeile ergänzen. Tragen Sie dazu in einer freien oder zusätzlichen Zeile die gewünschte Paketquelle nach. Um eine bereits erfasste Paketquelle zu modifizieren, ändern Sie den Listeneintrag in der entsprechenden Zeile. Mit Hilfe des #-Zeichens zu Beginn einer Zeile kommentieren Sie den jeweiligen Eintrag aus. Eine Paketquelle entfernen Sie endgültig aus der Liste, indem Sie die betreffende Zeile löschen.

Anzahl der Einträge

Es gibt keine Begrenzung für die Anzahl der Einträge. Bitte beachten Sie aber, dass die Zeit und das Übertragungsvolumen für die Aktualisierung der Paketlisten umso größer wird, je mehr Einträge vorhanden sind.

Bei der späteren Aktualisierung der lokalen Paketliste mittels apt-get update, aptitude update oder apt update (siehe Abschnitt 8.41, „Pakete aktualisieren“) werden die Paketquellen in der Reihenfolge abgearbeitet, wie sie in der Datei /etc/apt/sources.list aufgeführt sind. Ignoriert werden dabei Leerzeilen und die Einträge, die mit einem Hashzeichen # beginnen und somit auskommentiert sind.

Empfehlung zur Abfolge

Für das Hinzufügen und Ändern der Paketquellen empfehlen wir Ihnen eine bestimmte Reihenfolge (siehe Abschnitt 3.2, „Empfehlung zum Ablauf für das Hinzufügen und Ändern von Paketquellen“). Damit erleben Sie zukünftig keine bösen Überraschungen mehr.

Zur Automatisierung des Vorgangs wurden ebenfalls eine Reihe von Programmen entwickelt. Dazu zählen apt-cdrom (siehe dazu Abschnitt 3.8, „Physische Installationsmedien mit apt-cdrom einbinden“) und add-apt-repository (siehe dazu Abschnitt 3.9, „Einträge mit add-apt-repository im Griff behalten“)). Sind Sie hingegen weniger tastaturaffin, bieten sich als weitere Möglichkeiten sowohl Synaptic sowie der Sources List Generator für Debian und Ubuntu an. Diese Programme stellen wir Ihnen in Abschnitt 3.10, „Einstellungen mit Synaptic“ und Abschnitt 3.11, „Debian und Ubuntu Sources List Generator“ ausführlicher vor.

3.3.2. Format eines Eintrags

Jeder Eintrag in der Datei /etc/apt/sources.list folgt einem festen Muster mit einer genauen Abfolge von definierten Feldern:

Art_der_Quelle URI Distribution [Komponente 1] [Komponente 2] [...]

Jedes dieser Felder hat eine bestimmte Funktion und erlaubt nur ausgewählte Inhalte:

Art der Quelle
bezeichnet den verwendeten Pakettyp. Zulässig sind entweder deb für Debian-Binärpakete und deb-src für Debian-Quellpakete. Genauer gehen wir dazu unter „Debians Paketvarianten“ in Abschnitt 2.7, „Debian-Pakete (Varianten)“ und „Debian-Paketformat“ im Detail in Kapitel 4, Debian-Paketformat im Detail ein.
URI

legt die Art der Installationsquelle fest. Hierbei sind diese Angaben zulässig:

  • file: die Installationsquelle ist ein Verzeichnis. Dieses kann sowohl lokal vorliegen, als auch von extern eingebunden sein, bspw. über ein Netzwerkdateisystem wie AFS, NFS oder SMB
  • cdrom: genutzt wird eine CD, eine DVD oder eine Blu-ray als Installationsmedium
  • http: die Installationsquelle ist ein HTTP-Server
  • https: die Installationsquelle ist ein HTTPS-Server
  • ftp: die Installationsquelle ist ein FTP-Server
  • copy: identisch zum Eintrag file, aber die bezogenen Debianpakete werden zusätzlich im lokalen Verzeichnis /var/cache/apt/archives/ abgelegt
  • mirror: Auswahl einer Installationsquelle anhand der GeoIP des Servers (siehe Abschnitt 3.6.2, „Paketquellen über GeoIP auswählen“)
Distribution

benennt die Veröffentlichung (siehe Abschnitt 2.10, „Veröffentlichungen“), aus der Pakete installiert werden sollen. Typisch ist hier die Angabe des Entwicklungsstands (siehe Abschnitt 2.10.1, „Bedeutung der verschiedenen Entwicklungsstände“) wie bspw. stable, unstable oder testing sowie die Nennung des alternativen Distributionsnamens wie bspw. Bullseye, Bookworm oder Sid (siehe Abschnitt 2.10.2, „Alias-Namen“).

Bitte beachten Sie bei Debian und Ubuntu die vollständige Kleinschreibung des Namens. Nicht-offizielle Paketquellen können an dieser Stelle jedoch auch sonstige Zeichenketten bis hin zu einem . verlangen.

Komponente
bestimmt den Distributionsbereich, d.h. bspw. bei Debian main, contrib oder non-free. Ausführlicher gehen wir darauf in Abschnitt 2.9, „Distributionsbereiche“ ein.

3.3.3. Beispieleinträge für offizielle Pakete

Der Standardeintrag für den Bezug von stabilen Debianpaketen aus dem Bereich main mit dem deutschen Spiegelserver als Paketquelle sieht folgendermaßen aus:

deb http://ftp.de.debian.org/debian/ stable main

Mit diesem Eintrag beziehen Sie stets nur Pakete aus der aktuellen, stabilen Veröffentlichung. Erscheint eine neue Veröffentlichung, sind Sie damit auf der sicheren Seite und wechseln automatisch zum Nachfolger.

Tragen Sie hingegen anstatt von stable den entsprechenden Aliasnamen der Veröffentlichung in Kleinbuchstaben wie bspw. bullseye oder bookworm ein, nutzen Sie ausschließlich Pakete aus der damit spezifizierten Veröffentlichung, die diesen Aliasnamen trägt. Möchten Sie später von dieser auf eine andere Veröffentlichung wechseln, passen Sie zunächst den Aliasnamen im Eintrag entsprechend an und aktualisieren nachfolgend die lokale Paketdatenbank (siehe „Distribution aktualisieren“ in Abschnitt 8.47, „Distribution aktualisieren (update und upgrade)“).

Um hingegen zusätzlich die Pakete aus weiteren Paketbereichen wie bspw. contrib und non-free zu verwenden, ändern Sie den Eintrag auf das Folgende, hier wiederum mit expliziter Angabe des Aliasnamens bookworm:

deb http://ftp.de.debian.org/debian/ bookworm main contrib non-free non-free-firmware

In welcher Reihenfolge Sie die einzelnen, gewünschten Paketbereiche angeben, spielt keine Rolle. Üblich ist jedoch die Abfolge anhand des Freiheitsgrades der Softwarelizenz in der Form von main contrib non-free.

Auswahl eines Paketmirrors

Mehr Informationen zur Auswahl eines für Sie am besten geeigneten Paketmirrors erfahren Sie unter „Geeigneten Paketmirror auswählen“ in Abschnitt 3.4, „Geeigneten Paketmirror auswählen“. Mit dieser Angabe beeinflussen Sie die Bezugszeiten für Aktualisierungen der Paketlisten und der Pakete erheblich zu ihren Gunsten.

3.3.4. Verzeichnis als Paketquelle

Pakete können Sie auch aus einem Verzeichnis ihres Debian-Systems integrieren. Dabei sind Sie nicht auf lokale Einträge beschränkt, sondern können auch auf entfernte Ressourcen zugreifen, bspw. ein NFS- oder SMB-Share. Voraussetzung ist allerdings, dass die angegebene Ressource vorab in den Verzeichnisbaum eingehängt wurde (auf engl. mounted) und APT darauf zugreifen darf. Eine lokale Ressource geben Sie über das Schlüsselwort file an, hier am Beispiel des Verzeichnisses /home/benutzer/debian:

deb file:/home/benutzer/debian stable main contrib non-free

Ein Eintrag für einen externen Datenträger, bspw. eine CD, DVD oder Blu-ray, sieht ähnlich wie die vorhergehenden Beispiele aus. Nach dem Schlüsselwort deb folgt der Wert cdrom mit der Kennung des Datenträgers zur Installation. Am Schluss des Eintrags finden Sie die Veröffentlichung und den Distributionsbereich. Nachfolgend sehen Sie einen Eintrag für eine CD, auf dem Ubuntu 12.04 LTS Precise Pangolin enthalten ist:

deb cdrom:[Ubuntu 12.04 LTS _Precise Pangolin_ - Release i386 (20120423)]/ precise main restricted

Automatisierung der Eintragung

Obige Einträge können Sie von Hand vornehmen. Das Werkzeug apt-cdrom vereinfacht den Vorgang jedoch erheblich. Unter „Physische Installationsmedien mit apt-cdrom einbinden“ in Abschnitt 3.8, „Physische Installationsmedien mit apt-cdrom einbinden“ besprechen wir das Programm genauer.

3.3.5. Einträge für Sicherheitsaktualisierungen

Häufig, aber in unregelmäßigen Abständen – d.h. wenn es erforderlich ist – kündigt das Debian Security-Team [Debian-Security] Sicherheitsaktualisierungen an und stellt diese bereit. Um von diesen Aktualisierungen zu profitieren, braucht es einen entsprechenden Eintrag in der Datei /etc/apt/sources.list.

Typischerweise wird dieser bereits zum Installationzeitpunkt vom Debian Installer angelegt, falls die entsprechende Frage mit "Ja" beantwortet haben.

Hatten Sie während der Installation bei der Frage nach Sicherheitsaktualisierungen "Nein" ausgewählt, oder fehlt der Eintrag aus sonstigen Gründen, so können Sie diesen manuell nachtragen.

Allerdings ist an dieser Stelle darauf zu achten, dass sich das Format des Eintrages zwischen Debian 10 Buster und Debian 11 Bullseye leicht geändert hat.

sources.list-Eintrag für Sicherheitsaktualisierungen bis Debian 10. 

deb http://security.debian.org/ <veröffentlichungsname>/updates <archivbereiche>

sources.list-Eintrag für Sicherheitsaktualisierungen ab Debian 11. 

deb http://security.debian.org/ <veröffentlichungsname>-security <archivbereiche>

Entsprechend hier Beispiele für Debian 10 Buster, Debian 11 Bullseye und Debian 12 Bookworm:

sources.list-Eintrag für Sicherheitsaktualisierungen in Debian 10 Buster

deb http://security.debian.org/ buster/updates main contrib non-free

sources.list-Eintrag für Sicherheitsaktualisierungen in Debian 11 Bullseye

deb http://security.debian.org/ bullseye-security main contrib non-free

sources.list-Eintrag für Sicherheitsaktualisierungen in Debian 12 Bookworm

deb http://security.debian.org/ bookworm-security main contrib non-free non-free-firmware

Obige Angaben beinhalten wiederum die empfohlene explizite Verwendung des Aliasnamens der Veröffentlichung anstatt des Suite-Namens. Dieser Name wird gefolgt vom Unterverzeichnis updates und den daraus gewünschten Distributionsbereichen main, contrib und non-free sowie ab Debian 12 Bookworm auch non-free-firmware. Je nach System nicht benötigte Archiv-Bereiche (z.B. non-free oder non-free-firmware) können Sie einfach weglassen.

3.3.6. Einträge für zusätzliche, nicht-offizielle Pakete

Nicht alle verfügbaren Softwareveröffentlichungen werden in die offiziellen Paketquellen von Debian aufgenommen. Viele Projekte stellen Programmversionen als deb-Pakete bereit, die sich von der Version her von der stabilen Veröffentlichung von Debian unterscheiden.

Im folgenden Beispiel sehen Sie die Einbindung der Paketquellen des PostgreSQL-Projekts [APT-Repo-PostgreSQL] und des X2Go-Projekts [APT-Repo-X2Go] für Debian 10 Buster:

deb https://apt.postgresql.org/pub/repos/apt/ buster-pgdg main
deb https://packages.x2go.org/debian buster main

Ähnliches gilt für Unternehmen, die erfreulicherweise inzwischen vielfach eigene deb-Pakete für ihre Produkte zur Verfügung stellen. Die exakte Bezugsquelle finden Sie zumeist auf der Webseite des jeweiligen Unternehmens. Um bspw. die Pakete für den Webbrowser Opera des gleichnamigen skandinavischen Herstellers einzubinden, hilft Ihnen folgender Verweis[8] auf den Bereich non-free auf dessen Paketserver:

deb http://deb.opera.com/opera stable non-free

Ergänzung der Signatur der Paketquelle

Damit Debian dieser zusätzlichen Paketquelle auch vertraut, überprüft es dazu eine entsprechende digitale Signatur. Wie dieses Konzept funktioniert und Sie einen passenden Schlüssel beziehen, lesen Sie unter „Paketquelle auf Echtheit überprüfen“ in Abschnitt 3.12, „Paketquelle auf Echtheit überprüfen“.

Eigene .list-Datei für fremde Paketquellen.

Anstatt alle Einträge direkt in die Datei /etc/apt/sources.list zu schreiben, können Sie einen oder mehrere Einträge auch in separate Dateien unter /etc/apt/sources.list.d/ ablegen. Dateien in diesem Verzeichnis bedürfen der Endung .list, um von APT beachtet zu werden.

So könnten Sie z.B. die Beispiele in diesem Abschnitt in den Dateien /etc/apt/sources.list.d/postgresql.list, /etc/apt/sources.list.d/x2go.list und /etc/apt/sources.list.d/opera.list speichern. Damit behalten Sie bereits anhand des Dateinamens den Überblick, aus welchen Fremdquellen weitere Pakete bezogen werden.

3.3.7. Einträge für Quellpakete

Um Debian-Quellpakete (siehe Abschnitt 2.7.4, „Source-Pakete (dsc und weitere Dateien)“) zu nutzen, benötigen Sie eine weitere Zeile in ihrer Paketliste. Im Vergleich zu Binärpaketen ändert sich lediglich das Schlüsselwort am Anfang eines Eintrags von deb auf deb-src. Danach erwartet APT wie gewohnt den Eintrag der Paketquelle. Für die offiziellen Quellpakete sieht der Eintrag wie folgt aus, hier am Beispiel des deutschen Paketmirrors für Debian 12 Bookworm:

deb-src http://ftp.de.debian.org/debian/ bookworm main

3.3.8. Einträge für Deutschland

Liegt ihr Lebens- und Arbeitsmittelpunkt in Deutschland oder Sie beziehen die Pakete von einem Paketmirror, der in Deutschland steht, enthält die Datei typischerweise die folgenden Einträge:

deb http://ftp.de.debian.org/debian/ bookworm main contrib non-free non-free-firmware
deb-src http://ftp.de.debian.org/debian/ bookworm main contrib non-free non-free-firmware

deb http://security.debian.org/ bookworm-security main contrib non-free non-free-firmware

Mit den ersten beiden Zeilen beziehen Sie alle Binär- und Sourcepakete für die Distributionsbereiche main, contrib und non-free für die Veröffentlichung Debian 12 Bookworm vom primären deutschen Debian-Spiegelserver. Mit den Zeilen drei und vier beziehen Sie zusätzlich die dazugehörigen Sicherheitsaktualisierungen für alle Distributionsbereiche der gleichen Veröffentlichung von der zentralen Stelle security.debian.org.

Für Veröffentlichungen vor Debian 12 Bookworm müssen Sie allerdings den Distributionsbereich non-free-firmware weglassen. Dieser kam erst mit Debian 12 Bookworm hinzu. Paket aus diesem Bereich waren bei vorherigen Veröffentlichungen im Bereich non-free mit dabei.



[8] Die aktuelle Konfiguration des APT-Repositories erlaubt nur die Verwendung von stable als Veröffentlichung. Verwenden Sie z.B. stretch anstatt von stable, so beschwert sich APT, dass dies nicht vorgesehen sei.