【问题标题】:CPack: Package dependencies and Red Hat / SuSE naming schemesCPack:包依赖关系和 Red Hat / SuSE 命名方案
【发布时间】:2020-04-23 18:59:35
【问题描述】:

使用 CMake / CPack 构建包时,CPACK_DEBIAN_PACKAGE_DEPENDSCPACK_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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-01-16
      • 2019-01-07
      • 2014-12-29
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 2012-05-12
      • 1970-01-01
      相关资源
      最近更新 更多