我第一次创建 deb 包(使用 CPack,但我认为这不相关),并且对依赖包版本控制感到困惑。我的应用程序依赖于 2 个 Boost 库,我需要最低版本 v1.71,所以我想法我可以使用这个字符串:
"libboost-program_options (>= 1.71), libboost-log (>= 1.71)"
但事实证明这些包有以他们的名字命名的版本! 因此我必须使用这个字符串才能安装该包:
"libboost-program_options1.71.0 (>= 1.71), libboost-log1.71.0 (>= 1.71)"
这使得最低版本规范变得毫无用处。所以现在如果有人安装了 v1.73 的库,这本来是完全没问题的,但却apt
无法满足依赖关系!
“真正的”软件包维护者如何解决这个问题?
答案1
您可以使用元包libboost-program-options-dev
和libboost-log-dev
。
他们会拉动相关的 libboost-program_optionsx.xx.x
。
因此,depends 行将如下所示:
libboost-program-options-dev (>= 1.71), libboost-log-dev (>= 1.71)