De nombreux fichiers sont installés par les packages sur mon système de fichiers.
Cela me serait utile lors d'un projet pour mettre à jour des images personnalisées utilisées en interne. Aussi, lors de la réinstallation à la maison et que j'ai oublié ce que j'ai fait. Bien sûr, les plus intéressants sont en dehors du répertoire home, mais les modifications apportées par exemple aux fichiers de configuration de points dans home sont également intéressantes.
Pour répondre littéralement à votre question, vous pouvez lister les fichiers qui ne proviennent pas de paquets de cette façon:
find / -xdev -type f | sort >/tmp/root.files
sort /var/lib/dpkg/info/*.list >/tmp/installed.files
comm -23 /tmp/root.files /tmp/installed.files
Cela inclura bien sûr tous les fichiers dans les répertoires personnels. Vous pouvez ignorer certains répertoires de la commande find
en ajoutant les directives -Prune
(vous devrez également ajouter -print
pour imprimer le reste, car l'action -print
est uniquement implicite. s'il n'y a pas d'action).
find / -xdev -type f -path /home -Prune -o -path /var -Prune -o -print | sort >/tmp/root.files
Pour vérifier si un fichier a changé, vous pouvez comparer sa somme de contrôle à celle de /var/lib/dpkg/info/$PACKAGE.md5sum
. Si vous voulez comparer chaque fichier (ce qui prendra très longtemps):
for p in /var/lib/dpkg/info/*.list; do
diff <(md5sum $(cat $p) | sort) <(sort ${p#.list}.md5sums);
done
Vous ne devriez pas en avoir besoin, car vous ne devriez pas modifier les fichiers provenant de packages. Vous ne devez pas non plus ajouter vos propres fichiers dans les répertoires système.
Si vous modifiez un fichier de configuration, il réside dans /etc
; c'est le seul endroit où vous devriez modifier les fichiers système. Installez le paquet etckeeper pour suivre vos modifications dans /etc
. Exécutez Sudo etckeeper init
et /etc
sera sous contrôle de version ( Bazaar par défaut).
Si vous installez un logiciel sur l’ensemble du système, installez-le sous /usr/local
. Ne touchez rien dans /bin
, /sbin
, /lib
(sauf les modules de noyau installés manuellement si vous en avez besoin car vous avez un matériel inhabituel), ou /usr
(sauf /usr/local
qui est pour votre propre usage).
Tous les fichiers de votre répertoire personnel ont été créés par vos soins (à l’exception de quelques-uns qui ont été copiés à partir de /etc/skel
lors de la création de votre compte). Il n’existe aucun moyen général de savoir quelles sont les valeurs par défaut de l’application, lesquelles résultent de la sélection des options de configuration et lesquelles enregistrent l’état actuel (fichiers ouverts, historique des commandes, etc.).
Pour votre deuxième point, vous pouvez utiliser debsums -ac
(du paquet du même nom) pour lister tous les fichiers du paquet (y compris les fichiers de configuration) qui ont été modifiés.