/etc/apt/sources.list

Aus Foxwiki

Wenn Sie APT bereits über das Programm dselect als Installationsmethode benutzt haben, so haben Sie wahrscheinlich bereits APT an Ihre Bedürfnisse angepasst.

APT steht für „ Advanced Package Tool“, ein Programm also, das den Systemadministrator bei der Installation und Verwaltung von Programmen unterstützen soll.

  • Der erste Schritt zur Benutzung von APT ist die Anpassung der Konfigurationsdatei /etc/apt/sources.list .
  • In dieser Datei befinden sich die Informationen, von welcher Quelle die Pakete geholt werden sollen.
  • APT unterstützt eine große Zahl verschiedener Installationsquellen.
  • Momentan sind dies: cdrom, file, http und ftp.
  • Jede dieser Quellen wird in einer einzelnen Zeile in der Datei beschrieben.
  • Dabei wird auch die Reihenfolge berücksichtigt; weiter oben stehende Einträge haben eine höhere Priorität.
Das Format der Einträge lässt sich wie folgt beschreiben
# deb uri distribution [component1] [component2] [...] 
Ein Eintrag könnte also wie folgt aussehen
deb ftp://ftp.debian.org/debian stable main 
In der ersten Spalte findet sich der Hinweis auf die Art der Quelle
  • Mögliche Werte sind hier deb für Debian Pakete im Binärformat (dies ist der gebräuchliste Wert) oder aber deb-src für Pakete, die im Quellcode vorliegen.
  • Einträge der letzteren Art benötigt man beispielsweise, um ein Paket aus den Quellpaketen neu zu übersetzen.

Das Feld uri beschreibt die Installationsquelle und den Pfad zum „root“-Verzeichnis der Debian Distribution.

  • Auf einer CD-ROM und auf vielen Debian FTP-Servern ist der Pfad im Normalfall das Verzeichnis /debian .

Mit dem Feld distribution stellen Sie die gewünschte Version ein, die Sie installieren möchten.

  • Normalerweise wird man sich zwischen stable für die aktuelle, stabile Version oder unstable (für die Entwicklerversion) sowie testing, (die nächste zu veröffentlichende Version) entscheiden.
  • Wie schon am Anfang dieses Buches beschrieben, bekommt jede Debian Version einen Namen.
  • Sie können diesen Namen auch hier einsetzen, also Woody für die Version 3.0 oder Sarge für die Version 3.1 bzw. sid für die jeweils in Entwicklung befindlichen aktuellsten Pakete.

Die Felder „component“ werden mit den einzelnen Bereichen der Distribution gefüllt.

  • Hier können beispielsweise main, contrib, non-free, non-US (dieser Zweig ist ab Debian Sarge nicht mehr vorhanden) stehen.
  • Zulässig sind einer oder mehrere Einträge, die durch Leerzeichen voneinander getrennt werden.

Installationsquellen

file benutzt ein Verzeichnis als Quelle für die Pakete.
  • Dies kann ein lokales oder ein per NFS gemountetes Verzeichnis sein.
Cdrom benutzt ein lokal installiertes CD-ROM-Laufwerk als Installationsquelle.
  • Wenn die Distribution auf mehreren CDs vorliegt, wird auch dies unterstützt.
  • Benutzen Sie das Programm apt-cdrom, um die nötigen Einträge in der Datei /etc/apt/sources.list vorzunehmen oder benutzen Sie das Programm apt-setup.
Http benutzt einen HTTP-Server als Installationsquelle.
  • Wenn die Shell-Umgebungsvariable $http_proxy gesetzt ist (im Format: http://server:port/ ), so wird diese anstelle einer direkten Verbindung zum Server benutzt.
  • Sie können auch Proxy-Server benutzen, die eine Authentifizierung verlangen.
  • Hierzu ist der Proxy im Format: http://user:pass@server:port/ anzugeben.
  • Bitte beachten Sie, dass die Benutzernamen und Passwörter auf diesem Wege unverschlüsselt übertragen werden.
Ftp stellt sicher die am häufigsten verwendete Methode für APT dar.
  • Die Daten werden per FTP (File Transfer Protocol) auf den Rechner übertragen.
  • Ein Beispiel finden Sie weiter unten.
Copy Diese Methode ist identisch mit der Methode „file“, mit dem Unterschied, dass die Pakete vor der Installation in das Verzeichnis /var/apt/cache/archives/ kopiert werden.
  • Dies kann zum Beispiel auf Systemen Sinn machen, die keine Verbindung zum Netz haben und per ZIP-Medium aktualisiert werden sollen.
Hier nun einige Beispiele
  • Denken Sie daran, dass Sie durchaus mehrere dieser Einträge in der Konfigurationsdatei gleichzeitig verwenden können.
deb http://www.debian.org/archive stable main contrib 

Ein solcher Eintrag benutzt das Archiv auf http://www.debian.org mit den Bereichen stable/main und stable/contrib.

Folgender Eintrag holt die Dateien via FTP aus dem Verzeichnis /debian.

  • Es wird die noch nicht fertige („unstable“) Version von Debian GNU/Linux benutzt und auf die Bereiche main, contrib und non-free zugegriffen:
deb ftp://ftp.debian.org/debian unstable main contrib non-free 

Nochmal ein ähnlicher Eintrag, diesmal für die stabile Version und lediglich den Bereich main.

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

Wenn Sie die beiden vorhergehenden Zeilen in Ihrer Konfiguration einsetzen, werden beide Zeilen in einem FTP-Zugriff bearbeitet.

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

Ein solcher Eintrag benutzt eine lokale Kopie der Daten auf der Festplatte.

  • Dies kann auch ein per NFS gemountetes Verzeichnis sein.

TMP

Paketversionen und Distributionseigenschaften

Die Paketquellen, welche in der Datei /etc/apt/sources.list aufgeführt werden, enthalten im Idealfall die Dateien Packages (bzw. Packages.gz) und Release, mit denen die an der jeweiligen Quelle verfügbaren Pakete beschrieben werden.

Die Datei Packages befindet sich normalerweise im Pfad .../dists/dist-name/component/arch, also beispielsweise .../dists/stable/main/binary-i386/Packages.

  • Diese Datei besteht aus einem mehrzeiligen Eintrag für jedes Paket, von dem für die APT Prioritäten lediglich die beiden Zeilen Package und Version benötigt werden.

Die Datei Release befindet sich im Pfad .../dists/dist-name, also beispielsweise unter .../dists/stable/Release oder auch .../dists/sarge/Release.

  • Abweichend von der Datei Packages werden fast alle Informationen aus der Release-Datei benötigt.
Diese sind

Archive

# Bezeichnet das Archiv, zu dem alle Pakete dieses Verzeichnisses gehören.
  • Beispielsweise gibt die Zeile Archive: stable an, dass alle Pakete in dem Verzeichnisbaum unterhalb der Datei Release zum „stable“-Release von Debian gehören.
# In der APT Konfigurationsdatei wird dieser Wert wie folgt gesetzt: 
# Pin: release a=stable

Version

# Diese Zeile bezeichnet die Release-Version der Distribution.
  • Der Wert „3.1“ besagt auch, dass alle Pakete im Verzeichnisbaum zur Release 3.1 „Sarge“ von Debian gehören.
  • Für Versionen wie „testing“ und „unstable“ werden keine Versionsnummern vergeben, da diese Versionen noch nicht veröffentlicht sind.
  • Um diesen Wert in der APT-Konfigurationsdatei anzugeben, ist eine der folgenden Zeilen notwendig:
# Pin: release v=3.0
Pin: release a=stable, v=3.0
Pin: release 3.0

Component

# Bezeichnet den Abschnitt der Distribution, aus der die Pakete stammen.
  • Beispielsweise bezeichnet die Zeile Component: main in der Release-Datei, dass alle Pakete unterhalb diese Verzeichnisses zum Abschnitt „main“ gehören.
  • Dies bedeutet auch, dass alle diese Pakete einer Lizenz entsprechen, die in den Debian Free Software Guidelines (siehe auch DFSG) festgelegt ist.
  • Diese Angabe wird wie folgt in der APT-Konfigurationsdatei preferences festgelegt
# Pin: release c=main

Origin

# Bezeichnet den Ursprung der Pakete, meist ist hier „Debian“ angegeben.
  • In der APT preferences-Datei sieht diese Zeile wie folgt aus:
# Pin: release o=Debian

Label

# Eine Bezeichnung für die Pakete in diesem Verzeichnisbaum, dieser Eintrag hat meistens den Wert „Debian“.
  • In der APT preferences-Datei sieht diese Zeile wie folgt aus:
# Pin: release l=Debian

Alle verfügbaren Dateien (Packages und Release), die über Quellen in der Datei /etc/apt/sources.list verfügbar sind, werden im Verzeichnis /var/lib/apt/lists/ abgelegt.

  • Dieses Verzeichnis kann durch die Variable Dir::State::Lists in der Datei apt.conf verändert werden.
  • Die Dateinamen der gespeicherten Packages und Release-Dateien werden mit dem Namen des Servers sowie dem Pfad und der Architektur ergänzt, beispielsweise debiananwenderhandbuch.de_debian_dists_stable_main_binary-i386_Packages.

Weiterhin ist es möglich, eine oder mehrere Zeilen, beginnend mit dem Schlüsselwort Explanation:, mit einer Erklärung dieses Eintrages einzufügen.

Die Zeile Pin-Priority: in jedem Eintrag ist nicht zwingend erforderlich.

  • Wird ein solcher Eintrag nicht gefunden, so wird eine um den Wert 1 reduzierte Priorität gegenüber dem vorhergehenden Eintrag vergeben.

Beispiele

Das erste Beispiel zeigt, wie man allen Paketen der „stable“ Distribution eine Priorität über der vorgegebenen (von 500) zuweist.

  • Bei allen anderen Paketen wird die Priorität um den Wert 10 verringert.
# Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10

Die beschriebene Konfiguration führt dazu, dass alle Pakete aus der aktuellen „stable“ Distribution installiert werden bzw. bereits installierte Pakete immer aktuell gehalten werden. Darüber hinaus ist es möglich, einzelne Pakete aus anderen Distributionen zu installieren, hier am Beispiel eines Paketes aus „testing“ gezeigt:

# apt-get install paketname/testing

Das so aus „testing“ installierte Paket wird zu einem späteren Zeitpunkt nicht weiter aktualisiert.

  • Dies muss von Hand durch den erneuten Aufruf des oben beschriebenen Kommandos erfolgen.

Das zweite Beispiel setzt eine hohe Priorität für Pakete aus dem „testing“-Zweig, eine etwas niedrigere Priorität für den „unstable“-Zweig und eine noch geringere Priorität für Pakete aus anderen Bereichen.

# Package: *
Pin: release a=testing
Pin-Priority: 900
Package: *
Pin: release a=unstable
Pin-Priority: 800
Package: *
Pin: release o=Debian
Pin-Priority: -10

Diese Konfiguration bewirkt, dass bevorzugt Pakete aus „testing“ in den jeweils aktuellen Versionen installiert werden.

Einzelne Pakete aus dem „unstable“-Bereich installieren
# apt-get install paketname/unstable


TMP

Paketversionen und Distributionseigenschaften

Die Paketquellen, welche in der Datei /etc/apt/sources.list aufgeführt werden, enthalten im Idealfall die Dateien Packages (bzw. Packages.gz) und Release, mit denen die an der jeweiligen Quelle verfügbaren Pakete beschrieben werden.

Die Datei Packages befindet sich normalerweise im Pfad .../dists/dist-name/component/arch, also beispielsweise .../dists/stable/main/binary-i386/Packages.

  • Diese Datei besteht aus einem mehrzeiligen Eintrag für jedes Paket, von dem für die APT Prioritäten lediglich die beiden Zeilen Package und Version benötigt werden.

Die Datei Release befindet sich im Pfad .../dists/dist-name, also beispielsweise unter .../dists/stable/Release oder auch .../dists/sarge/Release.

  • Abweichend von der Datei Packages werden fast alle Informationen aus der Release-Datei benötigt.
Diese sind

Archive

# Bezeichnet das Archiv, zu dem alle Pakete dieses Verzeichnisses gehören.
  • Beispielsweise gibt die Zeile Archive: stable an, dass alle Pakete in dem Verzeichnisbaum unterhalb der Datei Release zum „stable“-Release von Debian gehören.
# In der APT Konfigurationsdatei wird dieser Wert wie folgt gesetzt: 
# Pin: release a=stable

Version

# Diese Zeile bezeichnet die Release-Version der Distribution.
  • Der Wert „3.1“ besagt auch, dass alle Pakete im Verzeichnisbaum zur Release 3.1 „Sarge“ von Debian gehören.
  • Für Versionen wie „testing“ und „unstable“ werden keine Versionsnummern vergeben, da diese Versionen noch nicht veröffentlicht sind.
  • Um diesen Wert in der APT-Konfigurationsdatei anzugeben, ist eine der folgenden Zeilen notwendig:
# Pin: release v=3.0
Pin: release a=stable, v=3.0
Pin: release 3.0

Component

# Bezeichnet den Abschnitt der Distribution, aus der die Pakete stammen.
  • Beispielsweise bezeichnet die Zeile Component: main in der Release-Datei, dass alle Pakete unterhalb diese Verzeichnisses zum Abschnitt „main“ gehören.
  • Dies bedeutet auch, dass alle diese Pakete einer Lizenz entsprechen, die in den Debian Free Software Guidelines (siehe auch DFSG) festgelegt ist.
  • Diese Angabe wird wie folgt in der APT-Konfigurationsdatei preferences festgelegt
# Pin: release c=main

Origin

# Bezeichnet den Ursprung der Pakete, meist ist hier „Debian“ angegeben.
  • In der APT preferences-Datei sieht diese Zeile wie folgt aus:
# Pin: release o=Debian

Label

# Eine Bezeichnung für die Pakete in diesem Verzeichnisbaum, dieser Eintrag hat meistens den Wert „Debian“.
  • In der APT preferences-Datei sieht diese Zeile wie folgt aus:
# Pin: release l=Debian

Alle verfügbaren Dateien (Packages und Release), die über Quellen in der Datei /etc/apt/sources.list verfügbar sind, werden im Verzeichnis /var/lib/apt/lists/ abgelegt.

  • Dieses Verzeichnis kann durch die Variable Dir::State::Lists in der Datei apt.conf verändert werden.
  • Die Dateinamen der gespeicherten Packages und Release-Dateien werden mit dem Namen des Servers sowie dem Pfad und der Architektur ergänzt, beispielsweise debiananwenderhandbuch.de_debian_dists_stable_main_binary-i386_Packages.

Weiterhin ist es möglich, eine oder mehrere Zeilen, beginnend mit dem Schlüsselwort Explanation:, mit einer Erklärung dieses Eintrages einzufügen.

Die Zeile Pin-Priority: in jedem Eintrag ist nicht zwingend erforderlich.

  • Wird ein solcher Eintrag nicht gefunden, so wird eine um den Wert 1 reduzierte Priorität gegenüber dem vorhergehenden Eintrag vergeben.

Beispiele

Das erste Beispiel zeigt, wie man allen Paketen der „stable“ Distribution eine Priorität über der vorgegebenen (von 500) zuweist.

  • Bei allen anderen Paketen wird die Priorität um den Wert 10 verringert.
# Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10

Die beschriebene Konfiguration führt dazu, dass alle Pakete aus der aktuellen „stable“ Distribution installiert werden bzw. bereits installierte Pakete immer aktuell gehalten werden. Darüber hinaus ist es möglich, einzelne Pakete aus anderen Distributionen zu installieren, hier am Beispiel eines Paketes aus „testing“ gezeigt:

# apt-get install paketname/testing

Das so aus „testing“ installierte Paket wird zu einem späteren Zeitpunkt nicht weiter aktualisiert.

  • Dies muss von Hand durch den erneuten Aufruf des oben beschriebenen Kommandos erfolgen.

Das zweite Beispiel setzt eine hohe Priorität für Pakete aus dem „testing“-Zweig, eine etwas niedrigere Priorität für den „unstable“-Zweig und eine noch geringere Priorität für Pakete aus anderen Bereichen.

# Package: *
Pin: release a=testing
Pin-Priority: 900
Package: *
Pin: release a=unstable
Pin-Priority: 800
Package: *
Pin: release o=Debian
Pin-Priority: -10

Diese Konfiguration bewirkt, dass bevorzugt Pakete aus „testing“ in den jeweils aktuellen Versionen installiert werden.

Einzelne Pakete aus dem „unstable“-Bereich installieren
# apt-get install paketname/unstable