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. Using Alternate Mirrors
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. 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.
The second field gives the base URL of the source (combined with the filenames present in the Packages.xz files, it must give a full and valid URL): this can consist in a Debian mirror or in any other package archive set up by a third party. The URL can start with file:// to indicate a local source installed in the system's file hierarchy, with http:// to indicate a source accessible from a web server, or with ftp:// for a source available on an FTP server. The URL can also start with cdrom: for CD-ROM/DVD-ROM/Blu-ray disc based installations, although this is less frequent, since network-based installation methods are more and more common.
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/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free

## Debian mirror

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

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

# Stable backports
deb http://deb.debian.org/debian stretch-backports main contrib non-free
deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
This file lists all sources of packages associated with the Stretch version of Debian (the current Stable as of this writing). We opted to name “stretch” explicitly instead of using the corresponding “stable“ alias (stable, stable-updates, stable-backports) because we don't want to have the underlying distribution changed outside of our control when the next stable release comes out.
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.
Anyone can use this repository to test those updates before their official publication. The extract below uses the stretch-proposed-updates alias which is both more explicit and more consistent since jessie-proposed-updates also exists (for the Oldstable updates):
deb http://ftp.debian.org/debian stretch-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.
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/stretch-backports
$ sudo apt-get install -t stretch-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://deb.debian.org/debian unstable main contrib non-free
deb-src http://deb.debian.org/debian unstable main contrib non-free

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

# Stable
deb http://deb.debian.org/debian stable main contrib non-free
deb-src http://deb.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://deb.debian.org/debian experimental main contrib non-free

6.1.4. Using Alternate Mirrors

The sources.list examples in this chapter refer to package repositories hosted on deb.debian.og. Those URLs will redirect you to servers which are close to you and which are managed by Content Delivery Networks (CDN) whose main role is to store multiple copies of the files across the world to deliver them as fast as possible to users. The CDN companies that Debian is working with are Debian partners who are offering their services freely to Debian. While none of those servers are under direct control of Debian, the fact that the whole archive is sealed by GPG signatures makes it a non-issue.
Picky users who are not satisfied with the performance of deb.debian.org can try to find a better mirror in the official mirror list:
But when you don't know which mirror is best for you, this list is of not much use. Fortunately for you, Debian maintains DNS entries of the form ftp.country-code.debian.org (e.g. ftp.us.debian.org for the USA, ftp.fr.debian.org for France, etc.) which are covering many countries and which are pointing to one (or more) of the best mirrors available within that country.
As an alternative to deb.debian.org, there used to be httpredir.debian.org. This service would identify a mirror close to you (among the list of official mirrors, using GeoIP mainly) and would redirect APT's requests to that mirror. This service has been deprecated due to reliability concerns and now httpredir.debian.org provides the same CDN-based service as deb.debian.org.

6.1.5. 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.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-base-url>
debian   http://deb.debian.org/debian
security http://security.debian.org
approx runs by default on port 9999 via a systemd socket and requires the users to adjust their sources.list file to point to the approx server:
# Sample sources.list pointing to a local approx server
deb http://apt.falcot.com:9999/security stretch/updates main contrib non-free
deb http://apt.falcot.com:9999/debian stretch main contrib non-free