Saturday, February 28, 2009

Gestion des fichiers de configuration lors d'un upgrade serveur

Environ 20% des packages de Debian / Ubuntu livrent un fichier de configuration par défaut lors de leur installation. Lors d'un upgrade , les fichiers de configuration évoluent aussi, et les modifications personnelles apportées à la configuration du système peuvent parfois entrer en conflit avec dpkg. On se retrouve donc avec la question suivante:

This package has a new configuration file. Would you like to keep your locally modified version or install the package maintainer's version ?

Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : background this process to examine the situation


Ma politique standard est toujours de garder mon fichier de configuration dans un premier temps, et de continuer la mise à jour, en vérifiant que le package, en général un daemon Unix, comme Samba ou sshd redémarre bien avec l'ancienne version du fichier de configuration.
( ceci afin de minimiser le downtime des services et préserver mes précieuses optimisations/customisations )
Le fichier de configuration proposé par le maintainer du paquet sera mis de côté avec l'extension dpkg-dist

Une fois l'upgrade terminée, j'examine le nouveau fichier de configuration , et je copie mes modifications personnelles à l'intérieur de celui ci, histoire de repartir de la configuration standard proposée par Debian.
En terme de ligne de commande cela donne ceci:

find /etc -name "*dpkg-dist"
diff -u /etc/mon_package.conf /etc/mon_package.conf.dpkg-dist

nano /etc/mon_package.conf.dpkg.dist
mv /etc/mon_package.conf.dpkg-dist /etc/mon_package.conf

Dans certains cas cependant j'utilise directement le fichier de configuration proposé par le mainteneur du package, sans chercher plus loin, car même si debian m'affirme que le paquet en question a été modifié localement, je sais très bien que je n'y ai pas touché ( exemple : Pam, login.defs )