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 angewendet 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:
--add
(Optional) Wird keine Option angegeben, so wird automatisch --add
verwendet. Diese Option fügt die
angegebene Datei in die Liste der zu diversifizierenden Dateien ein.
--admindir <Verzeichnis>
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. Wird ein Dateiname angegeben, so werden nur die entsprechenden Dateien angezeigt.
--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. Existiert die Zieldatei bereits, so wird die Aktion abgebrochen.
--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.
© 1999 - 2024 | Das Debian GNU/Linux Anwenderhandbuch von Frank Ronneburg steht unter einer Creative Commons Namensnennung-Nicht Kommerziell-Keine Bearbeitung 3.0 Deutschland Lizenz.