Befehl nach Dpkg-Installation ausführen?

Befehl nach Dpkg-Installation ausführen?

Ich wurde gerade von diesem Projekt inspiriert:

http://www.opendesktop.org/content/show.php?content=145633

Also, ich wollte etwas Ähnliches machen, nachdem dpkg etwas Neues im Verzeichnis /usr/share/applications abgelegt hat, aber wohin sollte mein Skript zeigen und welche Parameter sollten übergeben werden?

Antwort1

Wenn das Skript keine Parameter annimmt, fügen Sie /etc/apt/apt.conf.d/beispielsweise eine Datei in hinzu 92local(Zahlen werden verwendet, um die Ausführungsreihenfolge der Skripte in diesem Verzeichnis zu erzwingen) mit folgendem Inhalt:

DPkg::Post-Invoke { "/path-to/my-script"; };

und denken Sie daran, es ausführbar zu machen.

Ich kann derzeit keine Informationen dazu finden, wie Parameter oder Eingaben an das Skript übergeben werden.
Wenn es hilfreich sein kann, aptsollten Sie bei der Ausführung auf der Befehlszeile die Befehlszeile in der Umgebungsvariable finden SUDO_COMMAND.

Antwort2

Ich habe einen Weg gefunden, die Befehlszeile des APT-Befehls auszuführen:

Erstellen Sie eine Datei /etc/apt/apt.conf.d/90my_dpkg_post_invokemit Inhalt

DPkg::Post-Invoke { "/usr/local/lib/my_dpkg_post_invoke.sh"; }

Erstellen Sie eine ausführbare Datei /usr/local/lib/my_dpkg_post_invoke.shmit Inhalt

#!/bin/bash
APTPID=$( ps -ho ppid "${PPID}" )
APTPID="${APTPID## }"   # trim leading spaces
APTCMD=$( ps -ho args "${APTPID}" )
APTCMD="${APTCMD## }"   # trim leading spaces
echo "#### APT Command: ${APTCMD}"

Nun können Sie die ausführbare Datei um einen Test erweitern, ob sie ${APTCMD}einen String enthält, für den Sie eine Aktion auslösen möchten.

verwandte Informationen