当使用CMake / CPack构建包时,有CPACK_DEBIAN_PACKAGE_DEPENDS和CPACK_RPM_PACKAGE_REQUIRES来保存生成的.deb / .rpm应该依赖的包列表。
这种区别是有帮助的,因为包命名shemes在不同的发行版中有所不同。(例如:使用.debs的发行版向包名添加主要版本的libicu -即libicu60 --而使用.rpms的发行版不添加。)
然而,.rpm_-发行版也有差异,其中最显著的是SuSE和RedHat。例如,SuSE名称促进包libboost_system1.56.0等,而RedHat使用boost-system。
有没有一种理想主义的方法
CPACK_RPM_PACKAGE_REQUIRES,或者。
我知道如何找出发行版“hard way”(解析uname、在/etc中检查文件等),然后将各个包的名称“硬编码”到CPACK_RPM_PACKAGE_REQUIRES中;我想知道CMake / CPack是否提供了一种更实用的方法来解决这个问题。
发布于 2020-02-14 13:27:50
,我在想,CMake / CPack是否提供了一种更惯用的方法来解决这个问题。
不,没有。(至少还没有)。
“硬编码”是当今唯一的方法。在您提到的事情中,我会添加运行lsb-release (如果可用的话),解析/etc/lsb-release和/或来自/etc的其他特定发行版的内容.
https://stackoverflow.com/questions/59608621
复制相似问题