Niveau :
Résumé : debsums ; dpkg -S ; apt-get install --reinstall
Si vous avez bidouillé une debian en installant un logiciel sans passer par dpkg par exemple, ou si quelqu'un vous a fait une mauvaise blague et qu'il y a des problèmes dans les logiciels installés, alors il y a un moyen pour vérifier si le problème vient d'un fichier modifié :
$ apt-get install debsums $ debsums -c
Debsums est un outil debian qui fait un hash de tous les fichiers installés par des paquets debian et le compare au hash provenant du paquet original. L'option -c permet de lister tous les fichiers qui posent problème. Cela ne vous prémunit pas des attaquants qui pourraient aussi modifier la base des paquets, mais c'est utile pour toute manipulation plus ou moins volontaire du système.
Une fois la liste des fichiers modifiés récupérée, il nous reste à trouver dans quel paquet se trouvait le fichier en question :
$ dpkg -S /bin/ls # nous indique que ls est dans le paquet coreutils
Et maintenant passons à l'étape réparation :
# retélécharge et réinstalle tous les binaires d'un paquet déjà installé $ apt-get install --reinstall lepaquet
Et pour ceux qui voudraient faire une réinstallation complète de leur distribution :
$ dpkg --get-selections | grep install | awk '{print $1}' | xargs apt-get install --reinstall --yes
Mais comme dit le commentaire ci-dessous cela ne marche que si vous ne faite pas de pinning et si votre distribution est à jour. La commande suivante permet de ne pas changer les versions des paquets :
$ dpkg -l | grep ^ii | awk ‘{print $2″="$3}’ | xargs apt-get install -reinstall -s -t release-cible
Comments