创建依赖于 A 或 B 包的 deb 包

Pet*_*row 3 packaging dpkg dependencies deb

我创建了一个 deb 包,它具有:

Package: foo
Depends: libssl1.0.1 (>= 1.0.1)
Run Code Online (Sandbox Code Playgroud)

这在trustyjessie但它不起作用,zesty因为libssl1.0.2它与libssl1.0.1.

有没有办法在依赖于libssl1.0.1OR的 deb 包上指定libssl1.0.2?或者除了创建两个不同的 deb 包之外还有其他解决方法吗?

mur*_*uru 5

来自Debian 政策手册,第 7 章:声明包之间的关系

DependsRecommendsSuggestsPre-DependsBuild-DependsBuild-Depends-IndepBuild-Depends-Arch包装的控制字段,它在其它包声明依赖,所列出的包名还可以包括替代包名列表,由竖线(管)的符号分离|。在这种情况下,任何一个替代包都可以满足该部分依赖关系。

[...]

例如,依赖项列表可能显示为:

Package: mutt
Version: 1.3.17-1
Depends: libc6 (>= 2.2.1), exim | mail-transport-agent
Run Code Online (Sandbox Code Playgroud)

所以,大概:

Depends: libssl1.0.1 (>= 1.0.1) | libssl1.0.2
Run Code Online (Sandbox Code Playgroud)