Product SiteDocumentation Site

Kapitel 6. Wartung und Aktualisierung: Die APT-Tools

6.1. Befüllen der sources.list Datei
6.1.1. Syntax
6.1.2. Repositorien für Stable Benutzer
6.1.3. Repositories für Testing/Unstable Anwender
6.1.4. Verwenden alternativer Spiegel
6.1.5. Inoffizielle Resourcen: mentors.debian.net
6.1.6. Caching Proxy (Zwischenspeicher) für Debian Pakete
6.2. aptitude, apt-get und apt Befehle
6.2.1. Initialisierung
6.2.2. Installieren und Entfernen
6.2.3. Das System aktualisieren
6.2.4. Konfigurationsoptionen
6.2.5. Paketprioritäten verwalten
6.2.6. Mit mehreren Distributionen arbeiten
6.2.7. Automatisch installierte Pakete nachverfolgen
6.3. Der Befehl apt-cache
6.4. Der apt-file-Befehl
6.5. Benutzeroberflächen: aptitude, synaptic
6.5.1. aptitude
6.5.2. synaptic
6.6. Die Echtheit eines Paketes prüfen
6.7. Von einer Stable Distribution auf die nächste aktualisieren
6.7.1. Empfohlene Vorgehensweise
6.7.2. Problembehandlung nach einer Aktualisierung
6.7.3. Aufräumen nach einem Upgrade
6.8. Ein System aktuell halten
6.9. Automatische Aktualisierungen
6.9.1. dpkg konfigurieren
6.9.2. APT konfigurieren
6.9.3. debconf konfigurieren
6.9.4. Interaktiver Umgang mit der Kommandozeile
6.9.5. Die Wunderkombination
6.10. Pakete suchen
Dass Debian bei Administratoren so beliebt ist, liegt an der einfachen Installation von Software und daran, wie einfach es aktuell gehalten werden kann. Dieser einzigartige Vorteil rührt weitestgehend vom Programm APT, dessen Funktionen sich die Administratoren von Falcot Corp mit Begeisterung angeeignet haben.
APT ist die Abkürzung für Advanced Package Tool (fortschrittliches Paketierungshilfsprogramm). Den Begriff fortschrittlich verdient sich das Tool durch seinen Pakete-Ansatz. Es bewertet diese nicht einfach individuell, sondern betrachtet Pakete als Ganzes und erzeugt die bestmögliche Kombination von Paketen abhängig davon, welche verfügbar und den Abhängigkeiten nach kompatibel sind.
APT muss eine "Liste der Paketquellen (Repositorys)" erhalten: Die Datei /etc/apt/sources.list listet die verschiedenen Repositories auf, die Debian-Pakete veröffentlichen. APT importiert dann die Liste der Pakete, die von jeder dieser Quellen veröffentlicht werden. Dieser Vorgang wird erreicht, indem Packages.xz Dateien oder eine Variante wie Packages.gz oder .bz2 (mit einer anderen Kompressionsmethode) im Falle einer Quelle von Binärpaketen heruntergeladen und deren Inhalt analysiert wird. Im Falle einer Quelle von Quellpaketen lädt APT Sources.xz-Dateien oder eine Variante mit einer anderen Kompressionsmethode herunter. Wenn eine alte Kopie dieser Dateien bereits vorhanden ist, kann APT sie aktualisieren, indem sie nur die Unterschiede herunterlädt (siehe Seitenleiste TIPP Inkrementelle Aktualisierungen).

6.1. Befüllen der sources.list Datei

6.1.1. Syntax

Jede aktive Zeile in der Datei /etc/apt/sources.list stellt eine Paketquelle (Repository) dar und besteht aus mindestens drei durch Leerzeichen getrennten Teilen. Eine vollständige Beschreibung des Dateiformats und der akzeptierten Eintragszusammenstellungen finden Sie unter sources.list(5).

Beispiel 6.1. Beispiel-Eingabeformat in /etc/apt/sources.list

deb url distribution component1 component2 component3 [..] componentX
deb-src url distribution component1 component2 component3 [..] componentX
Das erste Feld bezeichnet die Art der Quelle:
deb
Paketquelle (Repository) von Binärpaketen
deb-src
Paketquelle (Repository) von Quellpaketen
Das zweite Feld gibt die Basis-URL der Quelle an. Kombiniert mit den Dateinamen in den Dateien namensPackages.xzmüssen sich vollständige und gültige URLs ergeben. Diese Quelle kann aus einem Debian-Spiegelserver bestehen oder einer Paketsammlung, die von dritter Seite aufgesetzt wurde. Der URL kann mit file:// beginnen, um eine Quelle anzugeben, die sich im lokalen Verzeichnisbaum des Systems befindet, mit http:// oderhttps://, um eine Quelle anzugeben, die auf einem Webserver zugreifbar ist, oder mit ftp:// sowie ftps:// für eine auf einem FTP-Server verfügbare Quelle. Der URL kann auch mit cdrom: beginnen, bei einer CD-ROM/DVD/Blu-ray-basierten Installation, allerdings wird dies seltener, da netzbasierte Installationsmethoden die Regel sind.
Die Syntax des letzten Feldes richtet sich nach der Struktur des Repositorys. Im einfachsten Fall kann man dort einfach das Unterverzeichnis (zwingend mit hintangestelltem Schrägstrich) der gewünschten Quelle angeben. Dies ist oft nur einfach ein "./", was das Fehlen eines Unterverzeichnisses anzeigt. Die Pakete befinden sich dann direkt an der angegebenen URL. Aber üblicherweise sind die Repositorien wie ein Debian Spiegel gegliedert, bestehend aus mehreren Distributionen, jede mit mehreren Komponenten. In diesen Fällen gibt man die gewählte Distribution an (mit ihrem "Codenamen" — siehe die Liste in der Seitenleiste GEMEINSCHAFT Bruce Perens, ein umstrittener Leiter — oder mit dem Namen der zugehörigen "Suite" (oldstable, stable, testing, unstable) und dann die Komponenten (oder Abschnitte), die aktiviert werden sollen. Ein üblicher Debian-Spiegel stellt die Komponenten main, contrib, und non-free zur Verfügung.
Der Eintrag cdrom beschreibt die vorhandenen CDs/DVDs. Anders als die anderen Quellen, ist eine CD/DVD-ROM nicht immer zugreifbar, sie muss ja zuerst in das Laufwerk eingelegt werden und zudem kann immer nur eine Scheibe zu einer Zeit gelesen werden. Deshalb werden diese Quellen ein klein wenig anders gehandhabt und müssen mit dem Befehl apt-cdrom hinzugefügt werden, üblicherweise ausgeführt mit dem Parameter add. Letzterer fordert Sie dann auf, die CD-ROM in das Laufwerk einzulegen, um dann deren Inhalt nach Paket-Dateien zu durchsuchen. Das Programm nutzt diese Dateien, um die Datenbank verfügbarer Pakete zu aktualisieren (dies geschieht für gewöhnlich mit dem Befehl apt update). Von da an kann APT auffordern, die CD-ROM einzulegen, falls es eines der darauf befindlichen Pakete benötigt.

6.1.2. Repositorien für Stable Benutzer

Hier ist eine standardmäßige sources.list für ein System, auf welchem eine Stable-Version von Debian läuft:

Beispiel 6.2. /etc/apt/sources.list-Datei für Debian Stable

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

## Debian-Spiegel

# Basis-Repository
deb https://deb.debian.org/debian buster main contrib non-free
deb-src https://deb.debian.org/debian buster main contrib non-free

# Stabile Aktualisierungen
deb https://deb.debian.org/debian buster-updates main contrib non-free
deb-src https://deb.debian.org/debian buster-updates main contrib non-free

# Stablie Backports
deb https://deb.debian.org/debian buster-backports main contrib non-free
deb-src https://deb.debian.org/debian buster-backports main contrib non-free
Die Datei listet alle Bezugsquellen für Pakete, die zur Version Buster von Debian gehören (der zum Zeitpunkt des Entstehens dieses Buches aktuellen Stable-Version). Im Beispiel oben haben wir "buster" explizit benannt, anstatt den allgemeinen Begriff "stable" (stable, stable-updates, stable-backports) zu verwenden, damit darunter nicht ohne unser Zutun eine andere Distribution verstanden wird, sobald die nächste Version freigegeben wird.
Die meisten Pakete kommen aus dem "base repository", das alle Pakete enthält, aber selten aktualisiert wird (etwa alle 2 Monate mit einem "point release"). Die anderen Repositories sind Untermengen (sie enthalten nicht alle Pakete) und können Aktualisierungen beinhalten (Pakete mit neuerer Version) die APT installieren könnte. Die folgenden Abschnitte erläutern den Zweck und die Richtlinien, die jedes dieser Repositories regeln.
Man muss wissen, dass, wenn die benötigte Version eines Paketes in mehreren Repositories verfügbar ist, das zuerst in der Liste sources.list aufgeführte verwendet wird. Aus diesem Grund werden nicht offizielle Bezugsquellen üblicherweise ans Ende der Liste gesetzt.
Nebenbei bemerkt trifft das meiste in diesem Abschnitt über Stable gesagte gleichermaßen auf Oldstable zu, denn letztere ist ja nichts anderes als eine ältere Stable, die parallel gepflegt wird.

6.1.2.1. Sicherheitsaktualisierungen

Debian nimmt Sicherheit ernst. Bekannte Software-Schwachstellen in Debian werden im Security Bug Tracker nachverfolgt und in der Regel in einem angemessenen Zeitrahmen behoben. Die Sicherheitsaktualisierungen werden nicht auf dem üblichen Netzwerk von Debian-Spiegeln vorgehalten, sondern auf security.debian.org, einer kleinen Gruppe von Maschinen, die von den Debian System Administratoren betreut werden. Dieses Archiv enthält Sicherheitsaktualisierungen, erstellt vom Debian Security Team und/oder von den Paketbetreuern, für die Stable- und Oldstable-Distribution.
Auf dem Server können auch Sicherheitsaktualsierungen für Testing liegen, aber das kommt selten vor, weil diese auf dem üblichen Aktualisierungsweg über Unstable auf Testing gelangen.
Bei schwerwiegenden Problemen gibt das Sicherheitsteam eine Debian-Sicherheitsempfehlung (DSA) aus und kündigt sie zusammen mit der Sicherheitsaktualisierung auf der Mailingliste an (Archiv).

6.1.2.2. Stable-Aktualisierungen

Stable-Aktualisierungen sind nicht sicherheitsrelevant, werden aber als wichtig genug erachtet, um sie den Anwendern vor der nächsten Stable Release aufzuspielen.
Dieses Repository enthält üblicherweise Korrekturen für kritische und schwere Fehler, die vor dem Release nicht behoben werden konnten oder die sich mit nachfolgenden Aktualisierungen eingeschlichen haben. Je nach Dringlichkeit können auch Aktualisierungen für Pakete enthalten sein, die regelmäßig auf einen aktuellen Stand gebracht werden müssen, wie die Spam-Erkennungsregeln von spamassassin, die Viren-Datenbank von clamav, die Sommerzeit-Regelungen aller Zeitzonen (tzdata), die ESR-Version von Firefox (firefox-esr) oder kryptografische Schlüsselringe wie debian-archive-keyring.
In der Praxis ist dieses Repository eine Teilmenge des proposed-updates-Repositorys, das sorgfältig von den Stable-Release-Betreuern ausgewählt wurde. Alle Updates werden auf der Mailingliste (archive) angekündigt und in der nächsten Stable Punktveröffentlichung sowieso aufgenommen.
deb https://deb.debian.org/debian buster-updates main contrib non-free

6.1.2.3. Proposed Updates

Einmal veröffentlicht, wird die Distribution Stable nur noch etwa alle 2 Monate aktualisiert. Im proposed-updates-Repository werden die vorgesehenen Aktualisierungen vorbereitet (kontrolliert von den Stable-Release-Betreuern).
Sowohl die Aktualisierungen von Stable als auch diejenigen zur Behebung von Sicherheitslücken, die in den voranstehenden Abschnitten beschrieben wurden, sind immer in diesem Repository enthalten, aber mehr noch, es bietet den Betreuern die Gelegenheit, wesentliche Fehler zu beheben, die kein sofortiges Release rechtfertigen.
Jeder kann dieses Repository benutzen, um diese Aktualisierungen vor ihrer offiziellen Veröffentlichung zu testen. Im Folgenden wird der Ausdruck buster-proposed-updates benutzt, der sowohl treffender als auch konsistenter ist, da ja stretch-proposed-updates (für die Aktualisierungen von Oldstable) auch noch existiert:
deb https://deb.debian.org/debian buster-proposed-updates main contrib non-free

6.1.2.4. Stable Backports

Das stable-backports-Repository enthält "rückportierte Pakete". Der Ausdruck beschreibt ein Paket mit kürzlich erschienener Software, das für eine ältere Distribution neukompiliert wurde, im Allgemeinen für Stable.
Wenn eine Distribution älter wird, haben viele Software-Projekte bereits neuere Versionen veröffentlicht, die nicht in die gegenwärtige Stable-Suite integriert werden, welche nur verändert wird, um die kritischsten Probleme, wie Sicherheitslücken, zu behandeln. Weil die Distributionen Testing und Unstable-Suiten risikobehaftet sein können, bieten einige Paketbetreuer manchmal freiwillig Neukompilierungen neuerer Software-Anwendungen für Stable an, was für Benutzer und Administratoren den Vorteil hat, mögliche Instabilitäten auf eine kleine Anzahl ausgewählter Pakete zu begrenzen. Die Seite https://backports.debian.org/ liefert weitere Informationen.
Rückportierungen in stable-backports werden nur aus Paketen erzeugt, die in Testing vorhanden sind. Das stellt sicher, dass alle installierten Rückportierungen auf die zugehörige Stable-Version aktualisierbar sind, sobald das nächste Stable-Release verfügbar ist.
Obwohl dieses Repository neuere Versionen von Pakten zur Verfügung stellt, werden diese von APT nicht installiert, es sei denn, Sie geben ausdrückliche Anweisungen, das zu tun (oder haben das schon bei einer früheren Version der betreffenden Rückportierung gemacht):
$ sudo apt-get install package/buster-backports
$ sudo apt-get install -t buster-backports package

6.1.3. Repositories für Testing/Unstable Anwender

Hier ist eine standardmäßige sources.list für ein System, auf welchem entweder die Version Testing oder Unstable läuft:

Beispiel 6.3. Beispoieldatei /etc/apt/sources.list für Debian-Anwender von Testing/Unstable

# Unstable
deb https://deb.debian.org/debian unstable main contrib non-free
deb-src https://deb.debian.org/debian unstable main contrib non-free

# Testing
deb https://deb.debian.org/debian testing main contrib non-free
deb-src https://deb.debian.org/debian testing main contrib non-free

# Testing Sicherheitsaktualisierungen
deb http://security.debian.org/ testing-security main contrib non-free
deb-src http://security.debian.org/ testing-security main contrib non-free

# Stable
deb https://deb.debian.org/debian stable main contrib non-free
deb-src https://deb.debian.org/debian stable main contrib non-free

# Stable Sicherheitsaktualisierungen
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
Mit dieser sources.list wird APT Pakete von der Unstable-Suite installieren. Ist das nicht gewollt, verwenden Sie die Einstellung APT::Default-Release (siehe Abschnitt 6.2.3, „Das System aktualisieren“) um APT anzuweisen, Pakete von einer anderen Suite auszuwählen (in diesem Fall vermutlich Testing).
Es gibt gute Gründe alle diese Repositories vorzuhalten, obwohl ein einziges doch genügen sollte. Testing-Anwender werden es schätzen, ein einzelnes Paket aus Unstable herauspicken zu können, wenn die Version Testing einen nervigen Fehler enthält. Und auf der anderen Seite haben Benutzer von Unstable, die von einem unerwarteten Rückschlag betroffen sind, die Möglichkeit, Pakete auf die (vermutlich funktionierende) Testing-Version zurückzusetzen.
Die Aufnahme von Stable ist umstrittener, bietet jedoch häufig Zugriff auf einige Pakete, die aus den Entwicklungsversionen entfernt wurden. Außerdem wird sichergestellt, dass Sie die neuesten Updates für Pakete erhalten, die seit der letzten stabilen Version nicht geändert wurden.

6.1.3.1. Das Paketdepot Experimental

Das Archiv von Paketen in Experimental ist auf allen Debian-Spiegelservern vorhanden und enthält Pakete, die aufgrund ihrer nicht den Standards entsprechenden Qualität noch nicht in Unstable sind – oft sind es Entwicklerversionen oder Vorab-Versionen (Alpha, Beta, Veröffentlichungskandidat…). Ein Paket kann auch dorthin verschoben werden, wenn Änderungen Probleme verursachen können. Der Paketbetreuer versucht diese Probleme dann mit der Hilfe erfahrener Benutzter, die mit problembehafteter Software umgehen können, aufzuspüren. Nach dieser ersten Stufe wird das Paket nach Unstable verschoben, wo es ein viel größeres Publikum erreicht und dadurch viel gründlicher getestet wird.
Generell wird Experimental von Benutzern genutzt, denen es nichts ausmacht, wenn ihr System beschädigt wird und sie es reparieren müssen. Diese Distribution ermöglicht es, ein Paket einzubinden, das ein Benutzer ausprobieren möchte oder weil er es benötigt. Genau das ist die Vorgehensweise von Debian, da das Hinzufügen dieser in APTs sources.list-Datei nicht dazu führt, dass diese Pakete systematisch benutzt werden. Die hinzuzufügende Zeile ist:
deb https://deb.debian.org/debian experimental main contrib non-free

6.1.4. Verwenden alternativer Spiegel

Die sources.list Beispiele in diesem Kapitel beziehen sich auf Paket-Repositorys, die auf deb.debian.org gehostet werden. Diese URLs leiten Sie zu Servern weiter, die sich in Ihrer Nähe befinden und von Content Delivery Networks (CDN) verwaltet werden, deren Hauptaufgabe darin besteht, mehrere Kopien der Dateien weltweit zu speichern und so schnell wie möglich für Benutzer bereitzustellen. Die CDN-Unternehmen, mit denen Debian zusammenarbeitet, sind Debian-Partner, die Debian ihre Dienste kostenlos anbieten. Während keiner dieser Server unter der direkten Kontrolle von Debian steht, ist die Tatsache, dass das gesamte Archiv durch GPG-Signaturen versiegelt ist, kein Problem.
Wählerische Benutzer, die mit der Leistung von deb.debian.org nicht zufrieden sind, können versuchen, einen besseren Spiegel in der offiziellen Spiegelliste zu finden:
Wenn Sie jedoch nicht wissen, welcher Spiegel für Sie am besten geeignet ist, ist diese Liste nicht sehr nützlich. Zum Glück unterhält Debian DNS-Einträge der Form ftp.Ländercode.debian.org (z. B. ftp.us.debian.org für die USA , ftp.fr.debian.org für Frankreich usw.), die viele Länder abdecken und auf einen (oder mehrere) der besten in diesem Land verfügbaren Spiegel verweisen.
Als Alternative zu deb.debian.org gab es früher httpredir.debian.org. Dieser Dienst würde einen Spiegel in Ihrer Nähe identifizieren (unter der Liste der offiziellen Spiegel, hauptsächlich mit GeoIP) und würde APT-Anfragen an diesen Spiegel umleiten. Dieser Dienst gilt aufgrund von Zuverlässigkeitsbedenken als veraltet und httpredir.debian.org bietet denselben CDN-basierten Dienst wie deb.debian.org.

6.1.5. Inoffizielle Resourcen: mentors.debian.net

Es gibt zahlreiche inoffizielle Debian-Paketquellen, die von fortgeschrittenen Benutzern eingerichtet wurden, die einige Software neu kompiliert haben — Ubuntu machte dies mit ihrem Personal Package Archive-Dienst (PPA) populär — von Programmierern, die ihre Kreation allen zur Verfügung stellen und sogar von Debian-Entwicklern, die Vorabversionen ihres Pakets online anbieten.
Die Adresse mentors.debian.net ist interessant (obwohl sie nur Quellpakete zweier Entwicklergruppen sammelt): Die von Kandidaten für den Status eines offiziellen Debian-Entwicklers und die von Freiwilligen, die Debian-Pakete erstellen wollen, ohne durch den Integrationsprozess zu gehen. Diese Pakete werden ohne jegliche Garantie hinsichtlich ihrer Qualität zur Verfügung gestellt; achten Sie darauf, die Herkunft und Integrität zu prüfen und sie dann zu testen, bevor Sie erwägen, sie produktiv einzusetzen.
Ein Paket zu installieren bedeutet, dessen Urheber Root-Rechte zu gewähren, da dieser über den Inhalt der Einrichtungsskripte entscheidet, die unter der Paket-Identität ausgeführt werden. Offizielle Debian-Pakete werden von Freiwilligen erstellt, die ausgewählt und überprüft wurden, und die ihre Pakete signieren können, so dass deren Herkunft und Integrität überprüft werden kann.
Seien Sie generell misstrauisch bei einem Paket, dessen Herkunft Sie nicht kennen und das nicht auf einem der offiziellen Debian-Servern beherbergt ist: Erwägen Sie in welchem Maß Sie dem Ersteller vertrauen können, und überprüfen Sie die Integrität des Pakets.

6.1.6. Caching Proxy (Zwischenspeicher) für Debian Pakete

Wenn für ein ganzes Netzwerk der gleiche Server für das Herunterladen der gleichen aktualisierten Pakete konfiguriert wird, weiß jeder Administrator, wie hilfreich ein dazwischengeschalteter Proxy ist, der als lokaler Zwischenspeicher im Netzwerk fungiert (siehe Seitenleiste WÖRTERVERZEICHNIS Cache).
Sie können APT so konfigurieren, dass "standardmäßig" ein Proxy benutzt wird (siehe Abschnitt 6.2.4, „Konfigurationsoptionen“ für die APT-Seite und Abschnitt 11.6, „HTTP/FTP-Proxy“ für die Proxy-Seite), aber das Debian-Ökosystem bietet noch bessere Möglichkeiten für diesen Zweck. Die speziellen Programme, die in diesem Abschnitt vorgestellt werden, sind intelligenter als ein einfacher Cache, denn sie können auf eine spezielle Struktur an APT-Repositories zurückgreifen (beispielsweise wissen sie, ob einzelne Dateien obsolet sind oder nicht, und können so die Vorhaltezeit anpassen).
apt-cacher and apt-cacher-ng arbeiten wie normale Proxy-Server. Die sources.list von APT bleibt unverändert, aber APT ist so konfiguriert, dass es diese als Proxies für ausgehende Anfragen nutzt.
approx auf der anderen Seite, arbeitet wie ein HTTP-Server, der alle im Netz verfügbaren Repositories unter seiner Top-Level-Domain zur Verfügung stellt. Die Verknüpfungen zwischen den entfernten URL's der Repositories und diesen Top-Level-Verzeichnissen sind in /etc/approx/approx.conf gespeichert:
# <Name> <Repository-Basis-URL>
debian   https://deb.debian.org/debian
security http://security.debian.org
approx lauscht standardmäßig über einen systemd-Socket auf Port 9999 und erwartet von den Anwendern, sources.list anzupassen, sodass er auf den Server "approx" zeigt:
# Das Beispiel aus der sources.list zeigt auf einen lokalen approx Server
deb http://localhost:9999/security buster/updates main contrib non-free
deb http://localhost:9999/debian buster main contrib non-free