Fourniture d'un fichier de configuration personnalisé pour un autre package

8

Nous utilisons Ubuntu au travail et je devrai apporter les mêmes changements de configuration à de nombreux systèmes, donc je les empaquette. L'une des modifications de configuration que je dois apporter est de définir lightdm sur la connexion automatique. Pour que j'emballe ce changement, il semble que je devrai assommer le fichier /etc/lightdm/lightdm.conf existant et le remplacer par mon lightdm.conf personnalisé. Cela semble être une mauvaise idée.

Comment est-ce que je peux faire ceci d'une manière qui ne causera pas de rupture et sera en accord avec la façon dont le reste de la communauté fonctionne?

mikewilliamson
la source

Réponses:

9

Cela se fait souvent en créant un package qui utilise dpkg-divertdans ses scripts de maintenance pour déplacer l'ancien fichier de configuration de côté:

  • Dans votre préinst, détournez le fichier.

    dpkg-divert --add --package $your_package_name --rename \
        --divert /path/to/file.disabled \
        /path/to/file
    
  • Dans votre postrm, détournez le fichier en arrière.

    dpkg-divert --remove --package $your_package_name --rename \
        /path/to/file
    

Voir: http://www.debian.org/doc/debian-policy/ap-pkg-diversions.html

Une solution qui aide à résumer dpkg-divertest le config-package-devpackage créé et maintenu par le projet Debathena du MIT. Ils ont un tutoriel complet .

andrewsomething
la source
D'après les exemples de la page liée, il semble que l' --divertoption devrait être fournie à la fois dans les fichiers preinst et postrm.
nmgeek
Il semble y avoir une documentation plus récente dans wiki.debian.org/ConfigPackages , qui recommande d'installer le fichier dans / etc / site / et d'utiliser des liens symboliques plutôt que d'installer directement dans / etc /. Il recommande également d'utiliser postinst plutôt que preinst et prerm plutôt que postrm.
Ulf Adams