normalement, quand on personnalise son système, on essaie de ne modifier que des fichiers qui ne seront pas remplacés en cas de mise à jour (pour éviter de recommencer à chaque fois); par exemple, au lieu de toucher à /etc/yaourtrc, on crée un ~/.yaourtrc.
seulement parfois, on n'a pas le choix: soit le logiciel n'est pas conçu pour lire ses fichiers de conf dans le home (logiciels utilisables que par Root), soit on touche à un fichier qui n'était pas prévu pour.
par chance, certains fichiers de conf sont notés dans le paquet comme étant possiblement modifiés, et si Pacman voit que c'est effectivement le cas, il placera le fichier en y ajoutant une extension *.pacnew et ne touchera pas à celui qu'on a modifié; c'est notamment le cas pour les fichiers qui sont forcément modifiés, comme /etc/passwd (liste des utilisateurs), /etc/group (liste des groupes), ou /etc/shadow (mots de passe): heureusement que Pacman ne modifie pas ces fichiers !
oui, mais tous les fichiers de conf ne bénéficient pas de ce traitement, et beaucoup seront écrasés à la mise à jour, même s'ils sont modifiés...
ce qui m'amène à ces petites options sympathiques que l'on peut utiliser dans le /etc/pacman.conf; elles y sont déjà, il faut juste les dé-commenter (enlever le #) et les modifier à ses besoins.
-on connaissait déjà celles qui permettent de ne pas mettre à jour un paquet ou un groupe:
IgnorePkg = <nom du paquet>
IgnoreGroup = <nom du groupe de paquets>
-il y avait aussi celle qui permet d'empêcher la suppression d'un paquet; on y trouve déjà pacman et glibc, mais on peut ajouter d'autres paquets dont on estime qu'il ne faut pas les désinstaller:
HoldPkg = pacman glibc <autre paquet>
-ce qui nous intéresse aujourd'hui, une option qui dit à Pacman de ne pas toucher un fichier, et de mettre sa mise à jour sous forme de *.pacnew, exemple ici avec yaourtrc:
NoUpgrade = etc/yaourtrc
attention, ce n'est pas une coquille, il ne faut pas mettre le premier "/" dans le chemin du fichier: c'est bien "etc/yaourtrc", et non pas "/etc/yaourtrc".
on peut aussi vouloir faire l'inverse, parce que Pacman est trop zélé, et qu'il nous colle un *.pacnew alors qu'on avait pas modifié le fichier (suffit d'un espace qui s'est perdu (*) ), et donc on lui demande de remplacer le fichier même s'il a été modifié, avec un point d'exclamation devant le nom du fichier:
NoUpgrade = !etc/lightdm/lightdm.conf
ceci remet Lightdm d'origine.
et bien sûr, ça induit qu'il faut penser à s'occuper de ses *.pacnew...
-une dernière qui peut servir aussi, et qui dit à Pacman de ne carrément pas installer un fichier du paquet; par exemple, on utilise "index.php" sur son serveur, et on voudrait ne pas avoir le fichier "index.html" quand on met à jour ou installe Apache:
NoExtract = var/www/index.html
cette option a les mêmes règles que la précédente, y compris le point d'exclamation.
et voilà...
*) Pacman se sert de la somme de contrôle du fichier pour savoir s'il a été modifié, donc même un simple commentaire dans le fichier peut lui faire considérer qu'il n'est pas d'origine.