# Apt dpkg hook, script à l'installation d'un paquet

**URL:** <https://www.debian-fr.org/t/apt-dpkg-hook-script-a-linstallation-dun-paquet/34715>\
**Category:** Support Debian\
**Created:** [Février 21, 2016, 3:47 UTC](https://www.debian-fr.org/t/apt-dpkg-hook-script-a-linstallation-dun-paquet/34715 "2016-02-21T03:47:47Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 3:47 UTC](https://www.debian-fr.org/t/apt-dpkg-hook-script-a-linstallation-dun-paquet/34715/6 "2016-02-21T03:47:51Z")

</div>

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]  
😉

---

_[View the full topic](https://www.debian-fr.org/t/apt-dpkg-hook-script-a-linstallation-dun-paquet/34715)._
