ALPM-HOOKS(5) Pacman-Handbuch ALPM-HOOKS(5)

alpm-hooks - Hook-Dateiformat für alpm

ÜBERSICHT

[Trigger] (erforderlich, wiederholbar)
Operation = Install|Upgrade|Remove (erforderlich, wiederholbar)
Type = Path|Package (erforderlich)
Target = <Pfad|Paketname> (erforderlich, wiederholbar)
[Action] (erforderlich)
Description = … (optional)
When = PreTransaction|PostTransaction (erforderlich)
Exec = <Befehl> (erforderlich)
Depends = <Paketname> (optional)
AbortOnFail (optional, nur vor der Transaktion)
NeedsTargets (optional)

libalpm bietet die Möglichkeit, Hooks anzugeben, die vor oder nach Transaktionen ausgeführt werden, basierend auf den während der Transaktion geänderten Paketen und/oder Dateien. Hooks bestehen aus einem einzelnen [Action]-Abschnitt, der die auszuführende Aktion beschreibt und einem oder mehreren [Trigger]-Abschnitten, die angeben, auf welche Transaktionen sie angewendet werden sollen.

Hooks werden aus den Dateien im systemweiten Hook-Verzeichnis /usr/share/libalpm/hooks sowie zusätzlichen, in pacman.conf(5) angegebenen Verzeichnissen gelesen (Vorgabe ist /etc/pacman.d/hooks). Die Dateinamen müssen zwingend die Endung ».hook« haben. Hooks werden in alphabetischer Reihenfolge ausgeführt, wobei die Endung ignoriert wird.

Hooks müssen mindestens einen [Trigger]-Abschnitt enthalten, in welchem festgelegt wird, welche Transaktionen die Ausführung des Hooks auslösen. Sind mehrere Trigger-Abschnitte vorhanden, wird die Hook ausgeführt, wenn ein beliebiger Trigger auf die Transaktion zutrifft.

Operation = Install|Upgrade|Remove

wählt den Typ der Operation, dem das Ziel entsprechen muss. Dies kann mehrmals angegeben werden. Installationen werden als Aktualisierung betrachtet, wenn das Paket oder die Datei bereits im System vorhanden ist, unabhängig davon, ob das neue Paket gemäß dessen Version tatsächlich neuer als das aktuell installierte Paket ist. Für Pfad-Trigger gilt dies sogar dann, wenn die Zugehörigkeit der Datei von einem Paket zu einem anderen gewechselt hat. Diese Angabe ist zwingend erforderlich.

Type = Path|Package

wählt aus, ob die Transaktion Paketen oder Dateien entsprechen muss. Im Abschnitt WARNUNGEN finden Sie spezielle Anmerkungen zu Datei-Triggern. File ist ein veralteter Alias für Path und wird in einer zukünftigen Veröffentlichung entfernt. Diese Angabe ist zwingend erforderlich.

Target = <Pfad|Paket>

gibt den Dateipfad oder Paketnamen an, denen die aktive Transaktion entsprechen muss. Die Pfade beziehen sich auf die Dateien im Paketarchiv; die Installationswurzel sollte nicht im Pfad enthalten sein. Glob-Muster im Shell-Stil sind zulässig. Sie können die Trefferanzeige umkehren, indem Sie einer Datei ein Ausrufezeichen voranstellen. Kann mehrmals angegeben werden. Diese Angabe ist zwingend erforderlich.

Description =

gibt eine optionale Beschreibung der vom Hook auszuführenden Aktion an, die dann in der Benutzeroberfläche verwendet wird.

Exec = <Befehl>

gibt den auszuführenden Befehl an. Befehlszeilenargumente werden durch Leerzeichen getrennt. Werte, die Leerzeichen enthalten, sollten in Anführungszeichen gesetzt werden. Diese Angabe ist zwingend erforderlich.

When = PreTransaction|PostTransaction

legt fest, wann der Hook ausgeführt werden soll. Diese Angabe ist zwingend erforderlich.

Depends = <Paket>

gibt Pakete an, die installiert sein müssen, um den Hook auszuführen. Dies kann mehrfach angegeben werden.

AbortOnFail

führt dazu, dass die Transaktion abgebrochen wird, wenn der Hook einen von Null verschiedenen Exit-Code zurückliefert. Dies ist nur auf Hooks anwendbar, die vor der Installation ausgeführt werden.

NeedsTargets

bewirkt, dass die Liste der passenden Trigger-Ziele an den laufenden Hook in die Standardeingabe stdin übergeben wird.

Hooks können außer Kraft gesetzt werden, indem Sie eine Datei gleichen Namens in einem Hook-Verzeichnis höherer Priorität platzieren. Sie können Hooks durch einen Symlink deaktivieren, der auf /dev/null verweist.

# Synchronisation von Festplatten erzwingen, um die Gefahr des Datenverlusts zu verringern
[Trigger]
Operation = Install
Operation = Upgrade
Operation = Remove
Type = Package
Target = *
[Action]
Depends = coreutils
When = PostTransaction
Exec = /usr/bin/sync

Es gibt Situationen, in denen Datei-Trigger auf unerwartete Weise agieren. Hooks werden unter Anwendung der Dateiliste der installierten, aktualisierten oder entfernten Pakete getriggert. Wenn Sie eine Datei installieren oder aktualisieren, die mit einer .pacnew-Endung entpackt wird, dann wird der ursprüngliche Dateiname zum Triggern der Hook verwendet. Beim Entfernen eines Pakets können alle im Eigentum eines Pakets befindlichen Dateien eine Hook triggern, ganz gleich, ob sie vor dem Entfernen des Pakets im System vorhanden waren.

Nach der Transaktion auszuführende Hooks werden nicht angewendet, wenn die Transaktion aus irgendeinem Grund nicht abgeschlossen werden kann.

Auf der Pacman-Website finden Sie aktuelle Informationen zu Pacman und den zugehörigen Werkzeugen.

Fehler? Sie machen wohl Witze, es gibt keine Fehler in dieser Software. Nun ja, sollte unsere Annahme doch falsch sein, senden Sie uns einen Fehlerbericht (auf Englisch) mit so vielen Details wie möglich in der Fehlerdatenbank von Archlinux im Bereich »Pacman«.

Derzeitige Betreuer:

Bedeutende frühere Mitwirkende:

Informationen zu weiteren Mitwirkenden erhalten Sie, wenn Sie den Befehl git shortlog -s im Git-Repositorium pacman.git aufrufen.

Ü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 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.

6. Februar 2024 Pacman 6.0.2