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. Inoffizielle Resourcen: mentors.debian.net
6.1.5. 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. Benutzeroberflächen: aptitude, synaptic
6.4.1. aptitude
6.4.2. synaptic
6.5. Die Echtheit eines Paketes prüfen
6.6. Von einer Stable Distribution auf die nächste aktualisieren
6.6.1. Empfohlene Vorgehensweise
6.6.2. Problembehandlung nach einer Aktualisierung
6.7. Ein System aktuell halten
6.8. Automatische Aktualisierungen
6.8.1. dpkg konfigurieren
6.8.2. APT konfigurieren
6.8.3. debconf konfigurieren
6.8.4. Interaktiver Umgang mit der Kommandozeile
6.8.5. Die Wunderkombination
6.9. 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 Paketierungstool). Den Begriff fortschrittlich verdient sich das Tool durch sein Herangehen an Pakete. Es bewertet diese nicht einfach individuell, sondern betrachtet die Pakete als Ganzes und erzeugt die bestmögliche Kombination von Paketen abhängig davon, welche (je nach Abhängigkeit) verfügbar und kompatibel sind.
APT benötigt eine "Liste der Paketquellen": Die Datei /etc/apt/sources.list enthält eine Liste der verschiedenen Depots (oder "Quellen"), die Debian Pakete zur Verfügung stellen. APT importiert dann von jeder Quelle die Liste der dort verfügbaren Pakete. Dazu lädt APT von jeder Quelle die nötigen Dateien herunter und analysiert deren Inhalt: Packages.xz (oder eine Variante mit einer anderen Kompressionsmethode wie z.B. Packages.gz oder .bz2 und falls es sich um Binärpakete handelt) und Sources.xz oder eine Variante (falls es sich um Quelltextpakete handelt) Falls bereits ältere Versionen dieser Dateien gespeichert wurden, kann APT diese aktualisieren, indem es nur die geänderten Teile herunterlädt (siehe die Seitenleiste TIPP Inkrementelle Aktualisierung).

6.1. Befüllen der sources.list Datei

6.1.1. Syntax

Jede aktive Zeile in der Datei /etc/apt/sources.list enthält die Beschreibung einer Quelle, bestehend aus drei, durch Kommata getrennten, Teilen.
Das erste Feld bezeichnet die Art der Quelle:
  • deb” für Binärpakete,
  • deb-src” für Quellpakete.
Das zweite Feld gibt den Basis-URL der Quelle an (kombiniert mit den Dateinamen in den Dateien namens Packages.gz mü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://, um eine Quelle anzugeben, die auf einem Webserver zugreifbar ist, oder mit ftp:// für eine auf einem FTP-Server verfügbare Quelle. Der URL kann auch mit cdrom: beginnen, bei einer CD-ROM/DVD-ROM/Blu-ray-basierten Installation, allerdings wird dies seltener, da netzbasierte Installationsmethoden mehr und mehr die Regel werden.
Die Syntax des letzten Feldes richtet sich nach der Struktur des Repositoriums. Im einfachsten Fall kann man dort einfach das Unterverzeichnis (zwingend mit vorangestelltem Schrägstrich) der gewünschten Quelle angeben (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" — stable, testing, unstable), dann die Komponenten (oder Abschnitte), die aktiviert werden sollen (zur Auswahl stehen main, contrib, und non-free auf einem typischen Debian Spiegel).
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.1. /etc/apt/sources.list-Datei für Debian Stable

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

## Debian mirror

# Base repository
deb http://ftp.debian.org/debian jessie main contrib non-free
deb-src http://ftp.debian.org/debian jessie main contrib non-free

# Stable updates
deb http://ftp.debian.org/debian jessie-updates main contrib non-free
deb-src http://ftp.debian.org/debian jessie-updates main contrib non-free

# Stable backports
deb http://ftp.debian.org/debian jessie-backports main contrib non-free
deb-src http://ftp.debian.org/debian jessie-backports main contrib non-free
Die Datei listet alle Bezugsquellen für Pakete, die zur Version Jessie von Debian gehören (der zum Zeitpunkt des Entstehens dieses Buches aktuellen Stable-Version). Wir entschieden uns, "jessie" explizit zu benennen, 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

Die Sicherheitsaktualisierungen werden nicht auf dem üblichen Netzwerk von Debianspiegeln 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-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 auf Testing gelangen.

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 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 oder die Sommerzeit-Regelungen aller Zeitzonen (tzdata).
Tatsächlich ist diese Repository ist eine Untermenge des proposed-updates-Repositories, sorgfältig ausgewählt von den Betreuern des Stable Release.

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 jessie-proposed-updates benutzt, der sowohl treffender als auch konsistenter ist, da ja wheezy-proposed-updates (für die Aktualisierungen von Oldstable) auch noch existiert:
deb http://ftp.debian.org/debian jessie-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 das gegenwärtige Stable integriert werden (welches nur verändert wird, um die allerkritischsten Probleme, wie Sicherheitslücken, zu behandeln). Weil die Distributionen Testing und Unstable risikobehaftet sein können, bieten einige Paketbetreuer manchmal Rekompilierungen neuerer Software-Anwendungen für Stable an, was den Vorteil hat, mögliche Instabilitäten auf eine kleine Anzahl ausgewählter Pakete zu begrenzen.
Das stable-backports-Repository ist inzwischen auf den normalen Debian-Spielgeln verfübar. Die Rückportierungen für Squeeze werden weiterhin auf dem dafür eingerichteten Server (backports.debian.org) vorgehalten und deshalb wird folgener Eintrag in sources.list benötigt:
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
Rückportierungen in stable-backports werden immer 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/jessie-backports
$ sudo apt-get install -t jessie-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.2. Beispoieldatei /etc/apt/sources.list für Debian-Anwender von Testing/Unstable

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

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

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

# Security updates
deb http://security.debian.org/ stable/updates main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free
Mit dieser sources.list wird APT Pakete von Unstable 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 Distribution 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 Bereitstellung von Stable kann auch in Frage gestellt werden, doch ermöglicht sie den Zugriff auf einige Pakete, die seit der letzten "stable"-Release aus den Entwicklungsversionen entfernt 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 http://ftp.debian.org/debian experimental main contrib non-free

6.1.4. Inoffizielle Resourcen: mentors.debian.net

Es gibt zahlreiche nichtöffentliche Debian Paketquellen (non-official sources), die von erfahrenen Benutzern eingerichtet wurden und die recompillierte Software von Entwicklern enthalten, die ihre Werke allen zur Verfügung stellen wollen - sogar von Debian Entwicklern, die Vorabversionen ihrer Pakete online bereitstellen (dies wurde durch Ubuntus Personal Package Archive Service populär).
Die Adresse mentors.debian.net ist interessant (obwohl sie nur Quellpakete zweier Entwicklergruppen sammelt): Die von Kanditaten 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.5. 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-base-url>
debian   http://ftp.debian.org/debian
security http://security.debian.org
approx lauscht standardmäßig via inetd auf Port 9999 (siehe Abschnitt 9.6, „Der Superserver inetd) und erwartet von den Anwendern, sources.list anzupassen, so dass er auf den Server "approx" zeigt:
# Das Beispiel aus der sources.list zeigt auf einen lokalen approx Server
deb http://apt.falcot.com:9999/security jessie/updates main contrib non-free
deb http://apt.falcot.com:9999/debian jessie main contrib non-free