Comment 'it' (c'est-à-dire purge
) sait-il où se trouvent les dépendances et les fichiers de configuration?
Comment purge
découvre-t-il qu'un logiciel particulier a créé un fichier donné?
Existe-t-il une sorte de fichier de configuration qui enregistre la création de tous les fichiers par programmes, afin que purge
puisse accéder aux enregistrements et faire correspondre les fichiers au programme lors de la suppression?
Oui, il existe de tels fichiers. En particulier, *.list
, *.postrm
et *.conffiles
, qui sont tous stockés dans le répertoire /var/lib/dpkg/info
.
Les fichiers .postrm
sont des scripts de post-suppression, qui s'exécutent après la suppression d'un paquet. Ces scripts sont sous la responsabilité des responsables de la maintenance du package, et chaque script est adapté au package spécifique. Si vous examinez /var/lib/dpkg/info/usb-modeswitch-data.postrm
par exemple, vous verrez quelque chose comme ceci:
#!/bin/sh
set -e
# Automatically added by dh_installdeb
dpkg-maintscript-helper rm_conffile "/etc/usb_modeswitch.d/230d:0001" 20101222-3 -- "$@"
# End automatically added section
Il y a aussi les fichiers *.list
et *.conffiles
, qui sont essentiellement des listes. gnome-terminal.list
, par exemple, répertorie tous les fichiers et répertoires créés lors de l'installation de gnome-terminal
. Les fichiers *.list
sont très utiles pour déterminer ce qui est installé. *.conffiles
liste tous les fichiers de configuration d'un paquet. Par exemple, alors que xterm.list
donne tout les fichiers, `xterm.conffiles * ne donne que des conffiles. En d'autres termes, le contenu de conffile sera également présent dans le fichier liste.
$ cat /var/lib/dpkg/info/xterm.conffiles
/etc/X11/app-defaults/XTerm
/etc/X11/app-defaults/KOI8RXTerm-color
/etc/X11/app-defaults/XTerm-color
/etc/X11/app-defaults/UXTerm-color
/etc/X11/app-defaults/UXTerm
/etc/X11/app-defaults/KOI8RXTerm
Je ne sais pas trop comment fonctionne *.conffiles
. Mon hypothèse est que les scripts de post-suppression sont prioritaires et que apt-get
utilise simplement ces *.conffiles
pour vérifier que les fichiers qui y sont répertoriés ont été supprimés.
Comme @ A.B. m'a rappelé correctement, il y a aussi *.prerm
fichiers, dont certains suppriment les fichiers .conf, mais pas nécessairement, par exemple celui pour xpdf
app supprimait les fichiers dans le répertoire /etc/xpdf/includes