// Datei: ./werkzeuge/paketquellen-und-werkzeuge/lokale-paketliste-und-paketcache.adoc

// Baustelle: Fertig

[[lokale-paketliste-und-paketcache]]

=== 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 (<<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 (<<benennung-eines-debian-pakets>>), den Maintainer
des Pakets, die Paketabhängigkeiten zum Bauen des Pakets, die genutzte
Architektur (<<debian-architekturen>>), das Format des Debianpakets
sowie die Checksummen der Pakete und das Sourcepaket
(<<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 (<<distributionsbereiche>>) und die Paketkategorie
(<<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 (<<werkzeuge-zur-paketverwaltung>>). Wie
das genau vorsichgeht, erklären wir unter Liste der verfügbaren Pakete
aktualisieren in <<liste-der-verfuegbaren-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
<<lokale-paketliste-reparieren>> genauer.
// Datei (Ende): ./werkzeuge/paketquellen-und-werkzeuge/lokale-paketliste-und-paketcache.adoc
