简而言之:conffiles 中定义的文件在首次安装时不安装。
我正在使用 CMake 创建 debian 包。这个包按我的预期工作。在软件包中,我有一个配置文件,我希望在升级软件包时保持该文件不被修改。我在conffiles
debian包的控制文件中定义了该文件。当我升级文件时,这也按预期工作:
- 如果未更改,则保留原始文件。当我更新配置文件的内容时,系统会提示我是否要保留原始文件/更新/等。
但是,当我第一次在新系统上安装该软件包时,conffiles 控制文件中定义的文件不会安装在该软件包中。根据文档:https://www.debian.org/doc/debian-policy/ap-pkg-conffiles.html 当您第一次安装该软件包时,它们应该与所有其他文件一起安装,但是这些文件丢失了。
- 我知道该文件存在于我的 debian 软件包中,因为我验证了这一点并且没有添加它的 conffiles 控制文件。
- 我认为conffiles 中的条目是正确的,因为更新时的行为符合预期。
问题:是什么阻止了首次安装时安装 conffiles 控件中的文件?
答案1
“已删除”也是在升级过程中保留的配置文件的有效状态,只要包处于配置文件保留的状态,例如在删除包而不清除配置文件时。
如果在使用--force-confnew
或进行安装时安装了该conf文件--force-confmiss
,则表明该conf文件之前已在 dpkg 中注册,并且已知已被删除。