Quand je disais qu’un peu d’imagination résoudrait le problème…
[size=125]/etc/apt/apt.conf.d/99-apt-hooks-test[/size]
DPkg::Pre-Install-Pkgs {
"if [ -x /root/apt-hooks-test/hook.sh ]; then /root/apt-hooks-test/hook.sh preinstall; fi";
};
DPkg::Post-Invoke {
"if [ -x /root/apt-hooks-test/hook.sh ]; then /root/apt-hooks-test/hook.sh postinvoke; fi";
};
[size=125]/root/apt-hooks-test/hook.sh[/size]
[code]#!/bin/sh
set -e # Arrêter immédiatement si erreur
Nom du paquet à surveiller (syntaxe grep -E)
PAQUET=“acct”
Emplacement du fichier servant de drapeau
FLAG_FILE="/root/apt-hooks-test/.flag"
Routine à exécuter
Appelé en Post-Invoke UNIQUEMENT si $PAQUET a été installé / mis à jour (les suppressions ne sont pas détectées).
hook_postinvoke()
{
echo “====> Ça marche ! <====”
}
Détecter l’installation / MAJ de $PAQUET en Pre-Install-Pkgs
if [ “$1” = “preinstall” ] && grep -E -q “^/var/cache/apt/archives/${PAQUET}_[^/]*”; then
touch “$FLAG_FILE”
Le cas échéant, exécuter la routine en Post-Invoke
elif [ “$1” = “postinvoke” ] && [ -f “$FLAG_FILE” ]; then
hook_postinvoke
rm “$FLAG_FILE”
fi[/code]