为另一个软件包提供定制的配置文件


8

我们在工作中使用Ubuntu,我将需要对许多系统进行相同的配置更改,因此我将它们打包。我需要进行的配置更改之一是将lightdm设置为自动登录。对于我来说,要打包此更改,似乎我需要掩盖现有的/etc/lightdm/lightdm.conf并将其替换为我自定义的lightdm.conf。这似乎是个坏主意。

我该如何以不会造成破坏的方式做到这一点,并且与社区其他成员的工作方式保持一致?

Answers:


9

通常,这是通过创建一个dpkg-divert在其维护者脚本中使用的包将旧的配置文件移到一边来完成的:

  • 在您的执行前,将文件转移出去。

    dpkg-divert --add --package $your_package_name --rename \
        --divert /path/to/file.disabled \
        /path/to/file
    
  • 在您的帖子中,将文件转移回去。

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

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

一种有助于抽象的解决方案dpkg-divertconfig-package-dev由MIT的Debathena项目创建和维护的软件包。他们有一个详尽的教程


从链接页面上的示例看来,--divert应该在preinst和postrm文件中都提供该选项。
nmgeek

似乎在wiki.debian.org/ConfigPackages中有更新的文档,该文档建议将文件安装到/ etc / site /并使用符号链接,而不是直接安装到/ etc /。它还建议使用postinst而不是preinst和prerm而不是postrm。
乌尔夫·亚当斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.