table of contents
- bookworm 13.11.4
- bookworm-backports 13.19~bpo12+1
- testing 13.20
- unstable 13.21
DH_INSTALLDEB(1) | Debhelper | DH_INSTALLDEB(1) |
NAME¶
dh_installdeb - installiert Dateien in das Verzeichnis DEBIAN.
ÜBERSICHT¶
dh_installdeb [Debhelper-Optionen]
BESCHREIBUNG¶
dh_installdeb ist ein Debhelper-Programm, das für die Installation von Dateien in die DEBIAN-Verzeichnisse in den Paketbauverzeichnissen mit den korrekten Berechtigungen zuständig ist.
DATEIEN¶
- Paket.postinst
- Paket.preinst
- Paket.postrm
- Paket.prerm
- Diese Betreuerskripte werden in das Verzeichnis DEBIAN installiert.
dh_installdeb wird eine Ersetzung bekannter MARKIERUNGEN des Musters #MARKIERUNG# durchführen. Im Allgemeinen werden Skripte #DEBHELPER# einbinden wollen, um von den durch Debhelper-Befehle erzeugten Shell-Skripten zu profitieren (einschließlich derer von dh_installdeb, wenn es Paket.maintscript-Dateien verarbeitet).
Die Markierung #DEBHELPER# sollte in eine eigene Zeile platziert werden, da sie oft durch ein mehrzeiliges Shellskript ersetzt wird.
- Paket.triggers
- Paket.shlibs
- Diese Steuerdateien sind im Verzeichnis DEBIAN installiert.
Beachten Sie, dass Paket.shlibs nur auf Kompatibilitätsstufe 9 und älter installiert wird. Verwenden Sie im Kompatibilitätsmodus 10 bitte dh_makeshlibs(1).
- Paket.conffiles
- Diese Datei wird ins DEBIAN-Verzeichnis installiert. Die
bereitgestellte Datei wird von Debhelper ergänzt, sodass sie alle
von Debhelper automatisch festgestellten conffiles enthält
(der Paketbetreuer sollte diese Liste nicht selbst schreiben, weil
Debhelper davon ausgeht, dass dies seine Aufgabe ist).
Diese Datei eignet sich hauptsächlich für den Einsatz »spezieller« Funktionalitäten wie Dpkgs remove-on-upgrade.
- Paket.maintscript
- Zeilen in dieser Datei entsprechen
dpkg-maintscript-helper(1)-Befehlen und -Parametern. Die
»maint-script-parameters« sollten jedoch nicht
eingefügt werden, da Debhelper sie automatisch hinzufügen
wird.
Beispiel:
# Richtig rm_conffile /etc/obsolete.conf 0.2~ foo # FALSCH rm_conffile /etc/obsolete.conf 0.2~ foo -- "$@"
Im Kompatibilitätsmodus 10 oder höher werden alle Shell-Metazeichen maskiert, daher kann hier kein beliebiger Shell-Code eingefügt werden. Eine Zeile wie "mv_conffile /etc/oldconffile /etc/newconffile" wird zum Beispiel Schnipsel von Betreuerskripten in alle Betreuerskripte einfügen, die sich eignen, um diese Konfigdatei zu verschieben.
Es war außerdem beabsichtigt, die Shell-Metazeichen in allen vorherigen Kompatibilitätsstufen zu maskieren. Dies funktionierte jedoch nicht ordentlich und von daher war es möglich, beliebigen Shell-Code in vorhergehenden Kompatibilitätsstufen einzubetten.
Das Werkzeug dh_installdeb wird einige grundlegende Prüfungen einiger der in dieser Datei aufgeführten Befehle durchführen, um häufige Fehler abzufangen. Die Überprüfung wird seit Kompatibilitätsstufe 10 als Warnung aktiviert und in Kompatibilitätsstufe 12 als harter Fehler.
Wo möglich, kann sich dh_installdeb eigenständig dafür entscheiden, einige oder alle Einträge so umzugestalten, dass anstelle von Betreuer-Skripten die entsprechenden Dpkg-Funktionen verwendet werden (bspw. kann es rm_conffile in remove-on-upgrade umschreiben). Die Mindestvoraussetzung, dass diese Funktionalität aktiv wird, ist dass Debhelper in Kompatibilitätsstufe 10 oder höher läuft.
unterstützt Ersetzungsvariablen in Kompatibilitätsstufe 13 oder neuer, wie in debhelper(7) beschrieben.
OPTIONEN¶
- -DMARKIERUNG=WERT, --define MARKIERUNG=WERT
- definiert Markierungen, die innerhalb von Betreuerskripten bei ihrer
Erzeugung ersetzt werden. Bitte beachten Sie, dass die in
"Beschränkungen in Markierungsnamen" beschriebenen
Beschränkungen auch für Markierungen gelten, die auf der
Befehlszeile definiert werden. Ungültige Markierungsnamen werden
einen Fehler auslösen.
In einfachen Fall wird dieser Parameter veranlassen, dass #MARKIERUNG# durch WERT ersetzt wird. Falls WERT mit einem @-Zeichen beginnt, wird von WERT erwartet, dass er auf eine Datei zeigt, die den tatsächlich einzufügenden Wert enthält.
Eine explizit mit diesem Parameter deklarierte Markierung wird die eingebauten Markierungen ersetzen.
Testbeispiele zum besseren Verständnis:
cat >> debian/postinst <<EOF #EINFACH# #DATEIBASIERT# EOF echo -n "Komplexer Wert" > irgendeine-Datei dh_installdeb --define EINFACH=direkt --define DATEIBASIERT=@irgendeine-Datei
In diesem Beispiel wird #EINFACH# zu direkt und #DATEIBASIERT# zu Komplexer Wert expandiert.
Es ist auch möglich, paketspezifische Werte für eine angegebene Markierung zu setzen, was hilfreich ist, wenn dh_installdeb mit mehreren Paketen agiert, die unterschiedliche Werte für dieselbe Markierung benötigen. Dazu wird pkg.Paketname. vor die Markierung gestellt.
Es kann wie im folgenden Beispiel benutzt werden:
cat >> debian/foo.postinst <<EOF # Skript für #PACKAGE# #MARKIERUNG# EOF cat >> debian/bar.postinst <<EOF # Skript für #PACKAGE# #MARKIERUNG# EOF cat >> debian/baz.postinst <<EOF # Skript für #PACKAGE# #MARKIERUNG# EOF dh_installdeb -pfoo -pbar -pbaz --define MARKIERUNG=Vorgabe --define pkg.bar.MARKIERUNG=eindeutiger-bar-wert \ --define pkg.baz.MARKIERUNG=eindeutiger-baz-wert
In diesem Beispiel wird #MARKIERUNG# in debian/foo.postinst zu Vorgabe, in debian/bar.postinst zu eindeutiger-bar-wert und in debian/baz.postinst zu eindeutiger-baz-wert expandiert.
Beachten Sie, dass die #pkg.*#-Markierungen in allen Skripten, mit denen gearbeitet wird, sichtbar sind. Sie können sich z. B. auf #pkg.bar.MARKIERUNG# innerhalb von debian/foo.postinst beziehen und es wird durch eindeutiger-bar-wert ersetzt.
ERSETZUNG IN BETREUERSKRIPTEN¶
dh_installdeb wird automatisch die folgenden Markierungen innerhalb eines bereitgestellten Betreuerskripts ersetzen (falls sie nicht über -D/--define ersetzt werden):
- #DEBHELPER#
- Diese Markierung wird standardmäßig durch in Shell-Schnipseln erzeugten Debhelper-Befehlen ersetzt. Dies umfasst die durch dh_installdeb aus der Datei Paket.maintscript erzeugten Schnipsel (falls vorhanden).
- #DEB_HOST_NAME#, #DEB_BUILD_NAME#, #DEB_TARGET_NAME#
- Diese Markierungen werden durch die entsprechende Variable aus
dpkg-architecture(1) ersetzt. In fast allen Fällen werden
Sie die Variante #DEB_HOST_NAME in einem Skript
benutzen wollen, um sicherzustellen, dass Sie beim Cross-Bauen den
richtigen Wert haben.
Wenn Markierungen dieses Musters auch unter größten Anstrengungen nicht zu einer Variable in dpkg-architecture(1) passen, werden sie so belassen, wie sie sind.
- #ENV.NAME#
- Markierungen dieser Form werden durch den Wert der entsprechenden
Umgebungsvariable ersetzt. Falls eine Umgebungsvariable nicht gesetzt ist,
wird die Markierung durch die leere Zeichenkette ersetzt.
Beachten Sie, dass es Einschränkungen gibt, welche Namen verwendet werden können (siehe "Einschränkungen in Markierungsnamen").
- #PACKAGE#
- Diese Markierung wird standardmäßig durch den Namen des Paketes ersetzt, welches das wirkliche Skript enthält.
Einschränkungen in Markierungsnamen¶
Alle Markierungen, die zur Ersetzung vorgesehen sind, müssen zum regulären Ausdruck #[A-Za-z0-9_.+]+# passen.
Markierungen, die nicht auf diesen Ausdruck passen, werden stillschweigend ignoriert, falls sie in der Skriptschablone gefunden werden. Ungültige Markierungsnamen, die per -D oder --define übergeben wurden, führen in den meisten Fällen dazu, dass dh_installdeb den Befehl mit einem Fehler zurückweist.
SIEHE AUCH¶
Dieses Programm ist Teil von Debhelper.
ÜBERSETZUNG¶
Diese Übersetzung wurde mit dem Werkzeug po4a <http://po4a.alioth.debian.org/> durch Chris Leick c.leick@vollbio.de und das deutsche Debian-Übersetzer-Team im Dezember 2011 erstellt.
Bitte melden Sie alle Fehler in der Übersetzung an debian-l10n-german@lists.debian.org oder als Fehlerbericht an das Paket debhelper.
Sie können mit dem folgenden Befehl das englische Original anzeigen man -L en Abschnitt Handbuchseite
AUTOR¶
Joey Hess <joeyh@debian.org>
2024-12-16 | 13.21 |