Предоставление настроенного файла конфигурации для другого пакета

8

Мы используем Ubuntu на работе, и мне нужно будет внести одинаковые изменения конфигурации во многие системы, поэтому я собираю их. Одно из изменений конфигурации, которое мне нужно сделать, это установить lightdm для автологина. Для того, чтобы упаковать это изменение, мне кажется, что мне нужно заткнуть существующий файл /etc/lightdm/lightdm.conf и заменить его на мой настроенный файл lightdm.conf. Это кажется плохой идеей.

Как я могу сделать это так, чтобы это не вызывало поломок и соответствовало тому, как работает остальная часть сообщества?

mikewilliamson
источник

Ответы:

9

Это часто делается путем создания пакета, который использует dpkg-divertв своих сценариях сопровождающего, чтобы переместить старый файл конфигурации в сторону:

  • В вашем preinst, перенаправьте файл прочь.

    dpkg-divert --add --package $your_package_name --rename \
        --divert /path/to/file.disabled \
        /path/to/file
    
  • В вашем postrm, перенаправьте файл обратно.

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

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

Одним из решений, которое помогает абстрагироваться, dpkg-divertявляется config-package-devпакет, созданный и поддерживаемый проектом Debathena из MIT. У них есть полное руководство .

andrewsomething
источник
Из примеров на связанной странице --divertвидно, что опция должна быть предоставлена ​​как в preinst, так и в postrm файлах.
nmgeek
Кажется, есть более новая документация в wiki.debian.org/ConfigPackages , которая рекомендует устанавливать файл в / etc / site / и использовать символические ссылки, а не устанавливать непосредственно в / etc /. Он также рекомендует использовать postinst вместо preinst и prerm, а не postrm.
Ульф Адамс