【发布时间】:2020-03-29 23:37:11
【问题描述】:
我对这个问题有点困惑,是否可以控制特定于 Debian 版本的软件包依赖关系?
在控制文件中,我们需要在“Depends”字段中指定依赖项,所以如果我们想为不同的 Debian 版本(Wheezy、Jessie 和 Stretch)制作一个包,并且不同版本的依赖项不同,那么我们如何在控制文件中定义这些依赖关系?
谢谢
【问题讨论】:
我对这个问题有点困惑,是否可以控制特定于 Debian 版本的软件包依赖关系?
在控制文件中,我们需要在“Depends”字段中指定依赖项,所以如果我们想为不同的 Debian 版本(Wheezy、Jessie 和 Stretch)制作一个包,并且不同版本的依赖项不同,那么我们如何在控制文件中定义这些依赖关系?
谢谢
【问题讨论】:
取决于依赖项。
某些软件包的元软件包会自动包含活动 Debian 发行版的正确版本。尤其是 PHP 包,可以做到这一点。例如,php-curl 包在stretch 中依赖php7.0-curl,在buster 中依赖php7.3-curl。如果您的包依赖于php-curl,您将自动获得正确的版本。 postgresql 包的作用相同,根据 Debian 发行版引入 postgresql-11 或 postgresql-9.6。
如果这不起作用,您可以尝试在源包中创建两个二进制包,名为myapp-jessie 和myapp-stretch,每个包都依赖于它们发布的正确包集。然后在主包中:
Depends: myapp-jessie | myapp-stretch
如果这些想法都不起作用,您可能需要维护多个控制文件,为每个版本建立一个 apt 存储库,构建多个包,并将每个包部署到适当的 apt 存储库。
你有哪些具体的依赖关系?
【讨论】: