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.
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.
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.
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.9, „Physische Installationsmedien mit apt-cdrom
einbinden“) und
add-apt-repository
(siehe dazu
Abschnitt 3.10, „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.11, „Einstellungen mit Synaptic“ und
Abschnitt 3.12, „Debian und Ubuntu Sources List Generator“ ausführlicher vor.
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:
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.
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 Paketcache abgelegt, der sich unter /var/cache/apt/archives/
befindet
mirror
: Auswahl einer Installationsquelle anhand der GeoIP des
Servers (siehe Abschnitt 3.7.2, „Paketquellen über GeoIP auswählen“)
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.
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, non-free und non-free-firmware 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 non-free-firmware.
Mehr Informationen zur Auswahl eines für Sie am besten geeigneten Paketmirrors erfahren Sie unter „Geeigneten Paketmirror auswählen“ in Abschnitt 3.5, „Geeigneten Paketmirror auswählen“. Mit dieser Angabe beeinflussen Sie die Bezugszeiten für Aktualisierungen der Paketlisten und der Pakete erheblich zu ihren Gunsten.
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
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.9, „Physische Installationsmedien mit apt-cdrom
einbinden“ besprechen wir
das Programm genauer.
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.
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
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.13, „Paketquelle auf Echtheit überprüfen“.
.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.
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
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.
Beim Ergänzen oder Ändern von Einträgen von Paketquellen können uns Fehler
unterlaufen, die dazu führen, dass die lokalen Paketlisten nicht mehr sauber
mit den Listen vom Paketmirror abgeglichen und aktualisiert werden.
Üblicherweise sind das simple Schreibfehler — fehlende Leerzeichen oder auch
falsche Namen der genutzten Veröffentlichung. Um diesen Fehlern auf die Spur
zu kommen, verfügen bislang weder APT, noch apt-get
und aptitude
über ein
spezifisches Unterkommando, mit dem sich die einzelnen Einträge auf korrekte
Schreibweise prüfen lassen.
Daher bleiben nur die folgenden Workarounds:
apt update
und apt-get update
apt
und
apt-get
dabei keine Fehler aus, sind die Einträge fehlerfrei.
apt-get --no-download update
Führe die Aktualisierung der lokalen Paketlisten durch, lade aber keine
Paketlisten herunter. Gibt apt-get
dabei keine Fehler aus, sind die
Einträge fehlerfrei. Einen fehlerhaften Eintrag in Form eines fehlenden
Leerzeichens bemängelt apt-get
wie folgt:
Fehler in der Datei /etc/apt/sources.list
aufspüren.
# apt-get --no-download update E: Typ »debhttp://deb.debian.org/debian/« in Zeile 1 der Quellliste /etc/apt/sources.list ist unbekannt. E: Die Liste der Quellen konnte nicht gelesen werden. #
apt-get indextargets
Gedacht ist das Unterkommando als Schnittstelle für externe Werkzeuge, die
mit APT arbeiten. Gemäß Manpage zu apt-get
zeigt es damit "eine Liste im
Deb822-Format mit Informationen über alle Datendateien (auch als Indexziele
bekannt) an, die apt-get
update herunterladen würde." Das gelingt nur,
wenn die Datei keine groben Fehler beinhaltet, bspw. fehlende Leerzeichen
zwischen dem Pakettyp und dem Paketmirror. Fehlerhafte Angaben in
Distributionsbereichen kann es nicht aufspüren, ignoriert dann aber den
gesamten Eintrag.
Zusätzlich "unterstützt [apt-get
] eine --format
-Option, um das
Ausgabeformat zu ändern und auch um Zeilen der Standardausgabe zum Filtern
der Datensätze zu akzeptieren."
Informationen zu den Paketquellen anzeigen (Auszug).
# apt-get indextargets MetaKey: contrib/binary-amd64/Packages ShortDesc: Packages Description: http://deb.debian.org/debian bookworm-updates/contrib amd64 Packages URI: http://deb.debian.org/debian/dists/bookworm-updates/contrib/binary-amd64/Packages Filename: /var/lib/apt/lists/deb.debian.org_debian_dists_bookworm-updates_contrib_binary-amd64_Packages Optional: no KeepCompressed: no Codename: bookworm-updates Label: Debian Origin: Debian Suite: stable-updates Trusted: yes Version: 12-updates Architecture: amd64 Base-URI: http://deb.debian.org/debian/dists/bookworm-updates/ By-Hash: yes Component: contrib CompressionTypes: xz bz2 lzma gz lz4 zst uncompressed Created-By: Packages DefaultEnabled: yes Fallback-Of: Identifier: Packages KeepCompressedAs: lz4 zst gz xz bz2 lzma uncompressed PDiffs: yes Release: bookworm-updates Repo-URI: http://deb.debian.org/debian/ Site: http://deb.debian.org/debian Sourcesentry: /etc/apt/sources.list:9 Target-Of: deb ... #
Um aus der Ausgabe die berücksichtigten Ressourcen herauszufiltern, bietet
sich eine Kombination aus apt-get
und grep
wie folgt an:
Genutzte Paketquellen herausfiltern.
# apt-get indextargets | grep Description Description: http://deb.debian.org/debian bookworm/main Sources Description: http://deb.debian.org/debian bookworm/contrib Sources Description: http://deb.debian.org/debian bookworm/non-free-firmware Sources Description: http://deb.debian.org/debian bookworm/main amd64 Packages Description: http://deb.debian.org/debian bookworm/main i386 Packages Description: http://deb.debian.org/debian bookworm/main Translation-de_DE Description: http://deb.debian.org/debian bookworm/main Translation-de Description: http://deb.debian.org/debian bookworm/main Translation-en Description: http://deb.debian.org/debian bookworm/main amd64 Contents (deb) Description: http://deb.debian.org/debian bookworm/main i386 Contents (deb) ... #
[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.