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.2.8. APT Patterns
6.3. Der Befehl apt-cache
6.3.1. The apt-cache policy Command
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 is the abbreviation for Advanced Packaging Tool. What makes this program “advanced” is its approach to packages. It doesn't simply evaluate them individually, but it considers them as a whole and produces the best possible combination of packages depending on what is available and compatible according to dependencies.
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
The second field gives the base URL of the source. Combined with the filenames listed 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:// or https:// to indicate a source accessible from a web server, or with ftp:// or ftps:// for a source available on an FTP server. The URL can also start with cdrom: for CD-ROM/DVD/Blu-ray disc based installations, although this is less frequent, since network-based installation methods are eventually more common. More methods like ssh:// or tor+http(s):// are supported and are either described in sources.list(5) or their respective apt-transport-method package documentation.
The syntax of the last field depends on the structure of the repository. In the simplest case, you can simply indicate a subdirectory (with a required trailing slash) of the desired source. This is often a simple “./” which refers to the absence of a subdirectory. The packages are then directly at the specified URL. But in most common cases, the repositories will be structured like a Debian mirror, with multiple distributions, each having multiple components. In those cases, name the chosen distribution by its “codename” — see the list in sidebar GEMEINSCHAFT Bruce Perens, ein umstrittener Leiter — or by the corresponding “suite” (oldoldstable, oldstable, stable, testing, unstable) and then the components to enable. A typical Debian mirror provides the components main, contrib, and non-free.
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

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

## Debian mirror

# Base repository
deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb-src https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware

# Stable updates
deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb-src https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware

# Stable backports
deb https://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
deb-src https://deb.debian.org/debian bookworm-backports main contrib non-free non-free-firmware
This file lists all sources of packages associated with the Bookworm version of Debian (the current Stable suite as of this writing). In the example above, we opted to name “bookworm” explicitly instead of using the corresponding “stable“ aliases (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.
Most packages will come from the “base repository”, which contains all packages but is seldom updated (about once every 2 months for a “point release”). The other repositories are partial (they do not contain all packages) and can host updates (packages with newer version) that APT might install. The following sections will explain the purpose and the rules governing each of those repositories.
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.
The server can also host security updates for Testing but this doesn't happen very often since those updates tend to reach that suite via the regular flow of updates coming from Unstable.
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.

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 bookworm-proposed-updates alias which is both more explicit and more consistent since bullseye-proposed-updates also exists (for the Oldstable updates):
deb https://deb.debian.org/debian bookworm-proposed-updates main contrib non-free non-free-firmware

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/bookworm-backports
$ sudo apt-get install -t bookworm-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 non-free-firmware
deb-src https://deb.debian.org/debian unstable main contrib non-free non-free-firmware

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

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

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

# Stable security updates
deb http://security.debian.org/ stable-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/ stable-security main contrib non-free non-free-firmware
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).
There are good reasons to include all those repositories, even though a single one should be enough. Testing users will appreciate the possibility to cherry-pick a fixed package from Unstable when the version in Testing is affected by an annoying bug. On the other hand, Unstable users bitten by unexpected regressions have the possibility to downgrade packages to their (supposedly working) Testing version.
The inclusion of Stable is more debatable, but it often provides access to some packages, which have been removed from the development versions. It also ensures that you get the latest updates for packages, which have not been modified since the last stable release.

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 non-free-firmware

6.1.4. Verwenden alternativer Spiegel

The sources.list examples in this chapter refer to package repositories hosted on deb.debian.org. 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, and 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.
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-base-url>
debian     https://deb.debian.org/debian
security   http://security.debian.org/debian-security
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:
# Sample sources.list pointing to a local approx server
deb http://localhost:9999/security bookworm-security main contrib non-free non-free-firmware
deb http://localhost:9999/debian   bookworm main contrib non-free non-free-firmware