Debian - 如何覆盖软件包的文件

Irb*_*bis 4 debian deb

我有两个具有不同名称的 Debian 软件包:configA.deb、configB.deb。两者的控制文件中都有以下几行:

Provides: my-config
Replaces: my-config
Run Code Online (Sandbox Code Playgroud)

并且两者都提供相同的内容 - file: config

当我在已安装 configA.deb 的情况下尝试安装 configB.deb 时,出现以下错误:

dpkg: error processing archive configB.deb (--install):
trying to overwrite '/home/user/configs/config', which is also in package configA.deb
Run Code Online (Sandbox Code Playgroud)

我希望安装 configB.deb 而不先删除/清除 configA.deb 并且不使用 option --force-overwrite。是否可以?

tri*_*eee 5

Debian 软件包不能覆盖彼此的文件。使用类似的方法update-alternatives将文件符号链接到一个包或另一个包提供的文件,而不会破坏任何包安装文件的完整性。或者Conflicts:当您尝试安装软件包 B 时使用强制删除软件包 A,反之亦然。作为第三种可能的方法,我不推荐的一种巧妙的解决方法是使用postinst包受保护资源中正确的副本覆盖每个包中的此文件。