如何制作Debian软件包取决于libboost的多个版本

时间:2010-01-26 11:49:06

标签: c++ boost debian

我有一个debian / control文件,其中包括:

Build-Depends: ... libboost1.35-dev, libboost-date-time1.35-dev, ...

这可以阻止程序包在现代Ubuntu系统上构建。

我可以将所有的1.35s改为1.38s然后它可以在现代的Ubuntu上运行,但不适用于旧版本。

我想做点什么:

Build-Depends: ... libboost-dev (>=1.35), libboost-date-time-dev (>=1.35), ...

但似乎1.35被硬编码到包名中。即libbost1.35-dev是与libboost1.38m不同的软件包,而不仅仅是同一软件包的不同版本。

我的理解在这里是否正确?我可以理解将主要版本号硬编码到包名中(如果新版本的ABI破坏了向后兼容性)。

有没有办法编写Debian控制文件,允许包依赖于特定版本的libboost或更高版本?

谢谢,

克里斯。

1 个答案:

答案 0 :(得分:7)

除非有特殊原因要针对特定​​版本的Boost,否则您应该“取决于libboost-dev”。这个libboost-dev包是一个伪包,可以提供合适的libboost版本。

如果您确实想要专门定位它们,请使用“或”运算符:

Depends: A | B | C 

请参阅:http://www.debian.org/doc/debian-policy/ch-relationships.html