3.3. /etc/apt/sources.list verstehen

3.3.1. Format der Paketliste

Wie auf UNIX/Linux-Systemen üblich, ist die Datei /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). Haben Sie in Ihrem Texteditor 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 entsprechenden Listeneintrag. 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 oder aptitude update (siehe Abschnitt 8.39, „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“), 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 im Ubuntu Software Center“ 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, 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 stehen:

  • file: 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: CD, DVD oder Blu-ray
  • http: HTTP-Server
  • ftp: FTP-Server
  • copy: identisch zu 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“)
  • debtorrent: die Pakete werden über DebTorrent auf der Basis des BitTorrent-Protokolls bezogen [Debian-Wiki-DebTorrent]. Basis dafür ist das Debianpaket apt-transport-debtorrent [Debian-Paket-apt-transport-debtorrent].
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. Stretch, Buster oder Sid (siehe Abschnitt 2.10.2, „Alias-Namen“).

Bitte beachten Sie bei Debian und Ubuntu die 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. jessie oder stretch 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.45, „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 stretch. In welcher Reihenfolge Sie die Paketbereiche angeben, spielt keine Rolle. Üblich ist jedoch die Abfolge anhand des Freiheitsgrades der Softwarelizenz in der Form von main contrib non-free.

deb http://ftp.de.debian.org/debian/ stretch 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 können Sie die Bezugszeiten für Aktualisierungen der Paketlisten und der Pakete erheblich zu ihren Gunsten beeinflussen.

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, ergänzen Sie die Datei /etc/apt/sources.list um den folgenden Eintrag:

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

Obige Angabe beinhaltet beispielhaft wiederum die explizite Angabe des Aliasnamens der Veröffentlichung Debian 9 Stretch. Dieser Name wird gefolgt vom Unterverzeichnis updates und den daraus gewünschten Distributionsbereichen main, contrib und non-free.

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 7 Wheezy:

deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main
deb http://packages.x2go.org/debian wheezy 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[9] 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 9 Stretch:

deb-src http://ftp.de.debian.org/debian/ stretch 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/ stretch main contrib non-free
deb-src http://ftp.de.debian.org/debian/ stretch main contrib non-free

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

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 9 Stretch 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.



[9] 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.