3.15. Lokale Paketliste und Paketcache

Die Paketverwaltung — genauer APT — pflegt lokale Paketlisten im Verzeichnis /var/lib/apt/lists. Diese Paketlisten dienen als Nachschlagewerk für APT. Wollen Sie den Paketbestand auf Ihrem Debian-System ändern, benutzt APT diese Paketliste, um die Existenz, die Verfügbarkeit von einer Paketquelle und die Abhängigkeiten eines Pakets zu bestimmen, bevor diese tatsächlich bezogen werden. Installieren Sie ein Paket nach (Abschnitt 8.38, „Pakete installieren“), weiß APT aus der lokalen Paketliste, von welcher Paketquelle und unter welcher URL es dieses herunterladen kann.

Die hier verwendete mehrstufige Vorgehensweise hat ihren Ursprung in der Anfangszeit von Debian, bei der der Internetzugang und dessen (nahezu) permanenter Verfügbarkeit noch nicht so selbstverständlich wie heute waren. Lokal verfügbare Informationen waren (und sind) stets mit geringerer Verzögerung nutzbar als externe Ressourcen und reduzieren zudem die Netzlast.

Die nachfolgende Auflistung ist typisch, wenn Sie als Paketmirror ftp.ch.debian.org und die Distributionsbereiche main, contrib und non-free im der Veröffentlichung buster benutzen und zusätzlich auch deb-src-Zeilen in der sources.list haben (deswegen die Dateien mit Sources im Namen) und apt-file installiert haben (deswegen die Dateien mit Contents im Namen).

Übersicht zu den lokalen Dateien, in denen die Paketlisten hinterlegt sind. 

$ ls -F /var/lib/apt/lists
auxfiles/
ftp.ch.debian.org_debian_dists_buster_contrib_binary-amd64_Packages
ftp.ch.debian.org_debian_dists_buster_contrib_Contents-amd64.lz4
ftp.ch.debian.org_debian_dists_buster_contrib_i18n_Translation-de
ftp.ch.debian.org_debian_dists_buster_contrib_source_Sources
ftp.ch.debian.org_debian_dists_buster_InRelease
ftp.ch.debian.org_debian_dists_buster_main_binary-amd64_Packages
ftp.ch.debian.org_debian_dists_buster_main_Contents-amd64.lz4
ftp.ch.debian.org_debian_dists_buster_main_i18n_Translation-de
ftp.ch.debian.org_debian_dists_buster_main_source_Sources
ftp.ch.debian.org_debian_dists_buster_non-free_binary-amd64_Packages
ftp.ch.debian.org_debian_dists_buster_non-free_Contents-amd64.lz4
ftp.ch.debian.org_debian_dists_buster_non-free_i18n_Translation-de
ftp.ch.debian.org_debian_dists_buster_non-free_source_Sources
lock
partial/
security.debian.org_dists_buster_updates_InRelease
security.debian.org_dists_buster_updates_main_binary-amd64_Packages
security.debian.org_dists_buster_updates_main_i18n_Translation-de
security.debian.org_dists_buster_updates_main_source_Sources
security.debian.org_dists_buster_updates_non-free_binary-amd64_Packages
security.debian.org_dists_buster_updates_non-free_i18n_Translation-de
security.debian.org_dists_buster_updates_non-free_source_Sources
$

Für jede Paketquelle aus /etc/apt/sources.list wird eine oder mehrere eigene, lokale Datei gepflegt. Diese ist eine Textdatei und beinhaltet alle Informationen zu den beziehbaren Paketen, bspw. den genauen Paketnamen und dessen Version (Abschnitt 2.11, „Benennung einer Paketdatei“), den Maintainer des Pakets, die Paketabhängigkeiten zum Bauen des Pakets, die genutzte Architektur (Abschnitt 1.2, „Debian-Architekturen“), das Format des Debianpakets sowie die Checksummen der Pakete und das Sourcepaket (Abschnitt 2.7, „Debian-Pakete (Varianten)“), aus der das Paket entstanden ist. Danach folgen die Projektwebseite sowie das Verzeichnis, in dem das Paket auf dem Paketmirror abgelegt ist. Zum Schluss stehen die Priorität, der Distributionsbereich (Abschnitt 2.9, „Distributionsbereiche“) und die Paketkategorie (Abschnitt 2.8, „Sortierung der Pakete nach Verwendungszweck“). Nachfolgender Kasten zeigt die Informationen anhand des Pakets 0ad-data aus der Paketkategorie Spiele (games).

Eintrag in /var/lib/apt/lists/debian.ethz.ch_debian_dists_bullseye_main_binary-amd64_Packages zum Paket 0ad-data

Package: 0ad-data
Version: 0.0.23.1-1.1
Installed-Size: 2044173
Maintainer: Debian Games Team <pkg-games-devel@lists.alioth.debian.org>
Architecture: all
Pre-Depends: dpkg (>= 1.15.6~)
Suggests: 0ad
Description: Real-time strategy game of ancient warfare (data files)
Homepage: http://play0ad.com/
Description-md5: 26581e685027d5ae84824362a4ba59ee
Tag: role::app-data
Section: games
Priority: optional
Filename: pool/main/0/0ad-data/0ad-data_0.0.23.1-1.1_all.deb
Size: 701833824
MD5sum: b2b6e5510898abf0eee79da48995f92f
SHA256: afb3f0ddaceb36dc2d716d83d7fee4ada419511a948e4a06fa44bbc1b486e2c0

TODO: Querverweis auf cron-apt und /etc/cron.daily/apt.

Die Paketlisten ändern sich, wenn Aktualisierungen sowie neue Versionen von Paketen verfügbar werden und die Paketquellen auf den Spiegelservern entsprechend aktualisiert wurden. Daher raten wir Ihnen, die lokalen Paketlisten in regelmäßigen Abständen ebenfalls zu aktualisieren, bspw. mit den Aufrufen apt-get update, aptitude update oder einem anderen Werkzeug zur Paketverwaltung (Kapitel 6, Werkzeuge zur Paketverwaltung (Überblick)). Wie das genau vorsichgeht, erklären wir unter Liste der verfügbaren Pakete aktualisieren in Abschnitt 3.14, „Liste der verfügbaren Pakete aktualisieren“ genauer.

Sollte die Aktualisierung fehlschlagen, könnte sich die Paketliste in einem inkonsistenten Zustand befinden. Wie Sie mit dieser Situation umgehen, erklären wir Ihnen unter Lokale Paketliste reparieren in Abschnitt 3.16, „Lokale Paketliste reparieren“ genauer.