Fornecendo um arquivo de configuração personalizado para outro pacote

8

Usamos o Ubuntu no trabalho e precisarei fazer as mesmas alterações de configuração em muitos sistemas, por isso estou empacotando-os. Uma das mudanças na configuração que preciso fazer é definir o lightdm como login automático. Para que eu empacote essa alteração, parece que vou precisar ignorar o /etc/lightdm/lightdm.conf existente e substituí-lo pelo meu lightdm.conf personalizado. Parece uma má ideia.

Como posso fazer isso de uma maneira que não cause rupturas e esteja alinhado com o funcionamento do resto da comunidade?

mikewilliamson
fonte

Respostas:

9

Isso geralmente é feito criando um pacote que usa dpkg-divertem seus scripts de mantenedor para mover o antigo arquivo de configuração de lado:

  • Na sua pré-instalação, desvie o arquivo.

    dpkg-divert --add --package $your_package_name --rename \
        --divert /path/to/file.disabled \
        /path/to/file
    
  • No seu postrm, desvie o arquivo de volta.

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

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

Uma solução que ajuda a abstrair dpkg-diverté o config-package-devpacote criado e mantido pelo projeto Debathena do MIT. Eles têm um tutorial completo .

andrewsomething
fonte
Nos exemplos da página vinculada, parece que a --divertopção deve ser fornecida nos arquivos preinst e postrm.
nmgeek
Parece haver documentação mais recente em wiki.debian.org/ConfigPackages , que recomenda instalar o arquivo em / etc / site / e usar links simbólicos em vez de instalar diretamente em / etc /. Também recomenda o uso de pós-instalação em vez de pré-instalação e pré-termo, em vez de pós-termo.
Ulf Adams