Debian 软件包对向后移植软件包的依赖

Debian 软件包对向后移植软件包的依赖

简而言之,是否可以直接从向后移植存储库定义 Debian 软件包依赖项?

我正在尝试制作一个自定义 Debian 软件包,该软件包在安装软件包时会自行构建。然而,构建所述包需要最新的linux-headers包,该包只能从反向移植存储库(以及linux-compiler)中获得。这是因为内核也是从向后移植安装的。

我尝试在包中包含自定义 APT 首选项文件,但这没有帮助。哪种方式有意义,因为apt不会在正在进行的安装过程中重新读取配置文件。首选项文件的内容如下,并且在手动安装时确实提供了正确的版本。

Package: linux-headers-amd64 linux-compiler-gcc-6-x86
Pin: release n=stretch-backports
Pin-Priority: 1000

那么有什么方法可以让我只需说一下就能让整个事情顺利进行apt install my-custom-package呢?

答案1

您无法指定要安装包的存储库,作为包本身的包依赖项。你唯一能做的就是指定一个最小版本:

Depends: linux-headers-amd64 (>= 4.19)

您可以apt在包中提供配置文件,但正如您所说,在安装过程中不会考虑它。软件包安装也不能请求安装其他软件包,除非使用依赖项,因此您无法设置新的存储库然后apt-get installpostinst.

也许您最好的方法可能是提供一个配置向后移植存储库的包(如果有必要,并且不添加引脚优先级 - 按照您在问题中所做的方式进行固定最终会破坏用户的设置),并告诉用户安装那然后安装您真正的软件包(无论如何他们都必须指定-t stretch-backports)。或者你可以使用dkms.

顺便说一句,您不应该依赖内核编译器包;特定的头包具有适当的依赖关系,因此如果需要,编译器包将被传递地拉入。

相关内容