我想制作自己的 Debian 软件包,其中包含一些默认配置文件。我不希望更新后该文件被重写dpkg -i
。
有哪些方法可以解决我的问题?
答案1
您可以创建一个名为的文件debian/conffiles
并列出其中的文件。这将导致dpkg
在覆盖文件之前检查文件是否有更改。来自 Debian 政策:
对于每个文件,它会检查软件包中包含的文件版本是否与软件包的上一个版本(正在升级的版本)中包含的版本相同;它还会将系统上当前安装的版本与上一个版本附带的版本进行比较。
如果用户和软件包维护者都没有更改文件,则保留该文件。如果其中一方更改了其版本,则优先使用更改后的版本 - 即,如果用户编辑了其文件,但软件包维护者没有发布其他版本,则用户的更改将保留,但不言而喻,但如果维护者发布了新版本,而用户没有编辑它,则将安装新版本(带有提示消息)。如果双方都更改了其版本,则会提示用户有关问题,并且必须自行解决差异。
如果您真的不想dpkg
再碰该文件,另一种方法是postinst
在第一次安装时在脚本中创建该文件,在升级时不做任何事情。只需记住还要创建一个相应的postrm
脚本,该脚本将在清除时删除该文件。