0

当使用 CMake / CPack 构建包时,有CPACK_DEBIAN_PACKAGE_DEPENDSCPACK_RPM_PACKAGE_REQUIRES保存生成的 .deb / .rpm 应该依赖的包列表。

区别是有帮助的,因为包命名方案因发行版而异。(例如:使用.debs 的发行版将 libicu 的主要版本添加到包名称中 - 即libicu60- 而使用.rpms 的发行版则不这样做。)

但是,-distros之间.rpm也存在差异,尤其是在 SuSE 和 RedHat 之间。例如,SuSE 命名 Boost 包libboost_system1.56.0等,而 RedHat 使用boost-system.

有没有一种意识形态的方式

  • 以与发行版无关的方式维护CPACK_RPM_PACKAGE_REQUIRES,或
  • 检测特定的分发/包命名模式?

我知道如何找出分发“困难的方式”(解析uname、签入文件/etc等),然后将各个包名称“硬编码”到CPACK_RPM_PACKAGE_REQUIRES; 我想知道 CMake / CPack 是否提供了一种更惯用的方法来解决这个问题。

4

1 回答 1

1

我想知道 CMake / CPack 是否提供了一种更惯用的方法来解决这个问题。

不,它没有。(至少现在)。

“硬编码”方式是当今唯一的方式。对于您提到的内容,如果可用,我将添加运行lsb-release、解析/etc/lsb-release和/或其他特定于发行版的内容/etc...

于 2020-02-14T13:27:50.377 回答