当使用 CMake / CPack 构建包时,有CPACK_DEBIAN_PACKAGE_DEPENDS并CPACK_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 是否提供了一种更惯用的方法来解决这个问题。