DNF5-CACHING(7)

BEZEICHNUNG
dnf5-caching - Zwischenspeicherung

BESCHREIBUNG

Diese Seite möchte einen Überblick über die verschiedenen Instrumente in DNF5 zum Bearbeiten der zwischengespeicherten Daten und deren zugehörige Szenarien bieten. Dazu gehören beispielsweise Konfigurationsoptionen, Befehlszeilenparameter und Befehle.

ORT ZWISCHENGESPEICHERTER DATEN

Die folgende Verzeichnisstruktur stellt ein typisches Zwischenspeicherverzeichnis von DNF5 dar:

            /var/cache/libdnf5/
            ├── fedora-*
            │   ├── metalink.xml
            │   ├── repodata
            │   │   ├── *-comps-Everything.x86_64.xml
            │   │   ├── *-primary.xml.zck
            │   │   └── repomd.xml
            │   └── solv
            │       ├── fedora-group.solvx
            │       └── fedora.solv
            ├── temporary_files.toml
            └── updates-*
                ├── metalink.xml
                ├── packages
                │   └── bash-5.2.21-1.fc38.x86_64.rpm
                ├── repodata
                │   ├── *-primary.xml.zck
                │   ├── *-updateinfo.xml.zck
                │   ├── *-comps-Everything.x86_64.xml.gz
                │   └── repomd.xml
                └── solv
                    ├── updates-group.solvx
                    ├── updates-updateinfo.solvx
                    └── updates.solv

Das vorgegebene Wurzel-Zwischenspeicherverzeichnis ist /var/cache/libdnf5. Wenn DNF5 jedoch als anderer Benutzer ausgeführt wird, verwendet es den Zwischenspeicher aus ~/.cache/libdnf5 mit der gleichen Struktur. Das Root-Zwischenspeicherverzeichnis kann mit der Konfigurationsoption system_cachedir neu definiert werden und das Benutzer-Zwischenspeicherverzeichnis mit der Option cachedir.

Innerhalb des Zwischenspeicherverzeichnisses gibt es Unterverzeichnisse für jede konfigurierte Paketquelle, wie fedora-* und updates-*. Diese enthalten Metadaten-Dateien im Verzeichnis repodata und vom Auflöser erzeugte Dateien im Verzeichnis solv. Die Auflöser-Dateien im Verzeichnis solv werden zur Verbesserung der Performance beim Auflösen von Paketabhängigkeiten oder Ausführung von Abfragen verwendet. Sie können auf Paketquellen-Ebene mit der Konfigurationsoption build_cache aktiviert oder deaktiviert werden. Das packages-Verzeichnis kann aus einer Paketquelle heruntergeladene Pakete enthalten und eine metalink- oder mirrorlist-Datei stellt Informationen zu den fernen Speicherorten der Paketquellendaten bereit.

Zusätzlich enthält die Verzeichniswurzel Zwischenspeicherverzeichnis eine Datei temporary_files.toml zu vorübergehend im System gespeicherten Paketen.

METADATEN-TYPEN

Es gibt verschiedene Typen von Metadaten, die von fernen Orten heruntergeladen und in DNF5 verarbeitet werden.

Einige Metadaten sind zwingend erforderlich und werden immer berücksichtigt. Die Haupt-Metadaten-Datei repomd.xml enthält Informationen zu spezifischen Metadatentypen-Dateien für eine Paketquelle, wie Prüfsummen, Dateigrößen und deren Orte in der Hierarchie der Metadaten. Eine weitere zwingend erforderliche Datei ist die Metadaten-Datei primary, welche detaillierte Informationen zu verfügbaren Paketen beinhaltet, wie Paketnamen, Versionen, Abhängigkeiten usw. Falls DNF5 mit Unterstützung für Modularität kompiliert wurde, werden auch die modules-Metadaten heruntergeladen und verarbeitet.

Andere Metadatentypen sind optional und können auf die folgenden Arten in DNF5 geladen werden:

    •   Ausdrückliche Benutzeranfrage durch Hinzufügen des angeforderten Typs zur Konfigurationsoption optional_metadata_types

    •   Automatisch während der Laufzeit, abhängig vom verwendeten Befehl

    •   Für filelists-Metadaten, wenn der Benutzer irgendeinen Dateipfad als Argument übergibt

Folgende optionale Metadatentypen werden unterstützt:

    •   comps: Metadaten, die Paketgruppen und Beschreibungen von Arbeitsumgebungen beinhalten

    •   filelists: Informationen zu allen Dateien, die von Paketen bereitgestellt werden

    •   updateinfo: Sicherheitsbezogene Aktualisierungen und Hinweise dazu

    •   presto: Informationen zu Delta-RPMs

    •   other: Zusätzliche Metadaten, wie beispielsweise Änderungsprotokolle

Falls die nötigen Metadaten im System nicht vorhanden sind, kann dies zu verschiedenen Szenarien führen: Rückgabe einer leeren Abfrage, Fehlermeldung wegen keines Treffers für ein Argument oder ein Fehler beim Auflösen einer Transaktion.

ZWISCHENSPEICHERUNG VON PAKETEN

Standardmäßig werden von DNF5 keine heruntergeladenen Paketdaten zwischengespeichert, da die keepcache-Option auf False gesetzt ist. Mit dieser Einstellung setzt DNF5 jedes Mal beim Herunterladen eines Pakets von einem fernen Speicherort einen Eintrag in temporary_files.toml im Zwischenspeicherverzeichnis der Paketquelle. Nach der nächsten erfolgreich ausgeführten Transaktion werden auf Basis dieser Liste alle Dateien entfernt. Dies geschieht nur, wenn die Transaktion eine eingehende Aktion beinhaltet; anderenfalls werden die Pakete für potenzielle Anwendungsfälle behalten.

Wenn die keepcache-Option auf True gesetzt ist, werden heruntergeladene Dateien nicht verfolgt und können später entweder manuell oder mit dem clean-Befehl entfernt werden, zum Beispiel dnf5 clean packages.

Pakete werden immer behalten, wenn sie mit dem download-Befehl heruntergeladen wurden.

TEILEN DES ZWISCHENSPEICHERS VON ROOT UNTER BENUTZERN

Typischerweise wird DNF5 mit Superuser-Rechten ausgeführt, um Änderungen im System vornehmen zu können. Jedoch gibt es Szenarien, in denen die Ausführung von Abfragen ohne erweiterte Rechte genügt. In solchen Fällen müssen die gesamten Paketquellen-Metadaten für das Benutzerkonto heruntergeladen werden, selbst wenn Daten im Zwischenspeicher von Root vorhanden sind.

In DNF5 wird beim Überprüfen auf leere, abgelaufene oder ungültige Paketquellen-Metadaten unter einem Nicht-Root-Benutzerkonto zunächst der Speicherort von Root durchsucht. Falls dort Metadaten vorhanden sind, werden sie zum Zwischenspeicherort des Benutzers kopiert. Beachten Sie, dass das Klonen von Metadaten optimiert wird, wenn das Dateisystem über »Copy-on-write«-Funktionalität verfügt, zum Beispiel btrfs(8).

CACHEONLY-OPTION KONTRA PARAMETER

Um DNF5 anzuweisen, ausschließlich mit zwischengespeicherten Daten zu arbeiten und das Herunterladen von fernen Speicherorten zu vermeiden, gibt es zwei Möglichkeiten. Zunächst kann die Konfigurationsoption cacheonly entweder auf metadata gesetzt werden, um nur die Metadaten der Paketquelle zu verwenden, oder auf all, um den gesamten Zwischenspeicher zu verwenden und damit das Herunterladen von Paketen zu verbieten. Alternativ können Sie mit dem Parameter --cacheonly die Konfigurationsoption automatisch auf all setzen, um die Aktion vollständig aus dem Zwischenspeicher laufen zu lassen.

Die Verwendung des metadata-Werts für die cacheonly-Konfiguration kann vorteilhaft sein, wenn optionale Paketquellen vorübergehend nicht erreichbar sind oder wenn bekannt ist, dass sie für den aktuellen Anwendungsfall nicht erforderlich sind. Er ist ebenfalls nützlich, wenn zwischengespeicherte Metadaten nicht auf dem neuesten Stand oder abgelaufen, aber noch funktionsfähig sind.

LÖSCHEN, ERZEUGEN, AKTUALISIEREN

Für die manuelle Erzeugung und Löschung des Zwischenspeichers werden folgende Befehle verwendet:
        dnf5-clean(8), Clean-Befehl <#clean-command-ref-label>
        dnf5-makecache(8), Makecache-Befehl <#makecache-command-ref-label>

Um die Aktualisierung der Metadaten vor der Ausführung eines Befehls zu erzwingen, verwenden Sie den Parameter --refresh.

Autor
Siehe AUTHORS.md in der dnf5-Quelldistribution.

Copyright
Mitwirkende am DNF5-Projekt.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer (debian-l10n-german@lists.debian.org).