【发布时间】:2020-04-23 18:59:35
【问题描述】:
使用 CMake / CPack 构建包时,CPACK_DEBIAN_PACKAGE_DEPENDS 和 CPACK_RPM_PACKAGE_REQUIRES 保存生成的 .deb / .rpm 应依赖的包列表。
区别是有帮助的,因为包命名方案因发行版而异。 (例如:使用 .debs 的发行版将 libicu 的主要版本添加到包名称中 - 即,libicu60 - 而使用 .rpms 的发行版则没有。)
但是,.rpm-distros 之间也存在差异,尤其是在 SuSE 和 RedHat 之间。例如,SuSE 将 Boost 包命名为 libboost_system1.56.0 等,而 RedHat 使用 boost-system。
是否有一种理想的方式
- 以与发行版无关的方式维护
CPACK_RPM_PACKAGE_REQUIRES,或者 - 检测特定的分发/包命名模式?
我知道如何通过“困难的方式”(解析uname,检查/etc 中的文件等等)然后将各个包名称“硬编码”到CPACK_RPM_PACKAGE_REQUIRES;我想知道 CMake / CPack 是否提供了一种更惯用的方法来解决这个问题。
【问题讨论】:
标签: cmake package-managers cpack linux-distro