Proporcionar un archivo de configuración personalizado para otro paquete

8

Usamos Ubuntu en el trabajo y tendré que hacer los mismos cambios de configuración en muchos sistemas, así que los empaqueto. Uno de los cambios de configuración que necesito hacer es configurar lightdm para iniciar sesión automáticamente. Para que pueda empaquetar este cambio, parece que tendré que cerrar el /etc/lightdm/lightdm.conf existente y reemplazarlo con mi lightdm.conf personalizado. Esto parece una mala idea.

¿Cómo puedo hacer esto de una manera que no cause roturas y esté en línea con el funcionamiento del resto de la comunidad?

Mikewilliamson
fuente

Respuestas:

9

Esto se hace a menudo creando un paquete que utiliza dpkg-diverten sus scripts de mantenimiento para mover el antiguo archivo de configuración a un lado:

  • En su preinst, desvíe el archivo.

    dpkg-divert --add --package $your_package_name --rename \
        --divert /path/to/file.disabled \
        /path/to/file
    
  • En su postrm, desvíe el archivo nuevamente.

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

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

Una solución que ayuda al resumen dpkg-divertes el config-package-devpaquete creado y mantenido por el proyecto Debathena del MIT. Tienen un tutorial completo .

andrewsomething
fuente
Según los ejemplos en la página vinculada, parece que la --divertopción se debe proporcionar tanto en los archivos preinst como postrm.
nmgeek
Parece que hay documentación más reciente en wiki.debian.org/ConfigPackages , que recomienda instalar el archivo en / etc / site / y usar enlaces simbólicos en lugar de instalar directamente en / etc /. También recomienda usar postinst en lugar de preinst y prerm en lugar de postrm.
Ulf Adams