Dpkg-divert: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „=== dpkg-divert === Datei-„diversions“ - im Deutschen in etwa „Umleitungen“, „Ablenkungen“ oder auch „Diversifikationen“ - erlauben es dem Debian Paketmanagement, Dateien nicht an der vorgesehenen, sondern an einer „umgeleiteten“ Stelle im Dateisystem abzulegen. dpkg-divert kann innerhalb von Debian Paket-Skripten eingesetzt werden, um eine Datei aus einem anderen Paket zu überschreiben * Dabei wird, wie gleich noch gezeigt wird, die…“ |
Keine Bearbeitungszusammenfassung |
||
Zeile 85: | Zeile 85: | ||
Eine Liste der umgeleiteten Dateien wird in der Datei /var/lib/dpkg/diversions gespeichert | Eine Liste der umgeleiteten Dateien wird in der Datei /var/lib/dpkg/diversions gespeichert | ||
[[Kategorie:Dpkg]] |
Version vom 24. Dezember 2024, 11:07 Uhr
dpkg-divert
Datei-„diversions“ - im Deutschen in etwa „Umleitungen“, „Ablenkungen“ oder auch „Diversifikationen“ - erlauben es dem Debian Paketmanagement, Dateien nicht an der vorgesehenen, sondern an einer „umgeleiteten“ Stelle im Dateisystem abzulegen. dpkg-divert kann innerhalb von Debian Paket-Skripten eingesetzt werden, um eine Datei aus einem anderen Paket zu überschreiben
- Dabei wird, wie gleich noch gezeigt wird, die Datei nicht tatsächlich überschrieben, sondern nur umbenannt
Während der Installation eines Pakets können so einzelne Dateien, beispielsweise Programme oder Manpages, durch andere Versionen ersetzt werden
- Konfigurationsdateien sind von dieser Funktionalität ausgenommen
- Um Konfigurationsdateien zu managen, ist entweder ein Paket zu erstellen, das das Ursprungspaket ersetzt oder mit diesem in Konflikt steht, oder aber es ist ein Paket zu erstellen, das Teile der Konfiguration enthält und diese mit dem Hauptpaket teilt (durch entsprechende Abhängigkeiten)
Beispielsweise kann ein Paket während der Installation ein Programm durch eine angepasste Version ersetzen
- Hierzu ist sinngemäß Folgendes in das preinst-Skript des Pakets einzufügen:
# if [ install = "$1" -o upgrade = "$1" ]; then dpkg-divert --package smailwrapper --add --rename \ --divert /usr/sbin/smail.real /usr/sbin/smail fi
In der Datei postrm des Pakets muss dieser Vorgang wieder rückgängig gemacht werden:
# if [ remove = "$1" ]; then dpkg-divert --package smailwrapper --remove --rename \ --divert /usr/sbin/smail.real /usr/sbin/smail fi
Die Dateien aus dem Debian Paket bleiben unangetastet mit Ausnahme der Umbenennung
Mittels dpkg-divert „markierte“ Dateien werden bei einem späteren Update nicht von Dateien aus einem aktuelleren Paket überschrieben
dpkg-divert kann ausschließlich auf Dateien und nicht auf Verzeichnisse angewandt werden
Mit dpkg-divert können diese Umleitungen gesetzt, angezeigt oder auch wieder gelöscht werden
- Weiterhin lassen sich die ursprünglichen Namen der umgeleiteten Dateien ermitteln
- Die Syntax für das Kommando dpkg-divert lautet:
# dpkg-divert [options] [--add] <file> dpkg-divert [options] --remove <file> dpkg-divert [options] --list <glob-pattern> dpkg-divert [options] --truename <file>
Die möglichen Optionen von dpkg-divert lauten
Unix | GNU | Parameter | Beschreibung |
---|---|---|---|
--add (Optional) | Wird keine Option angegeben, so wird automatisch --add verwendet
| ||
--admindir <Directory> | Setzt das Verzeichnis, in dem sich die Daten für dpkg befinden (normalerweise: /var/lib/dpkg/) | ||
--divert <Umlenken nach> | Bestimmt einen neuen Namen für die Datei | ||
--help | Zeigt eine kurze Anleitung zu dpkg-divert an | ||
--local | Bewirkt, dass alle verfügbaren Versionen eines Paketes diversifiziert werden | ||
--list [<file>] | Zeigt die bestehenden Diversifikationen an
| ||
--package <Paketname> | Der Name eines Pakets, in dem die Kopie der Datei <Dateiname> nicht umgeleitet wird | ||
--quiet | Es werden keine Ausgaben auf dem Bildschirm erzeugt | ||
--rename | Verschiebt eine Datei
| ||
--remove <file> | Löscht die angegebene Datei aus der Liste der diversifizierten Dateien und stellt den ursprünglichen Zustand wieder her | ||
--test | Testmodus; es werden keine Veränderungen durchgeführt | ||
--version | Zeigt die Versionsnummer von dpkg-divert an |
Beim Hinzufügen von Umleitungen werden, wenn nicht anders angegeben, immer die Option --divert <Ursprungsname>.distrib und die Option --local verwendet
Eine Liste der umgeleiteten Dateien wird in der Datei /var/lib/dpkg/diversions gespeichert