gpt4 book ai didi

debian - Cmake/Cpack Debian 打包 - 生成正确的包名

转载 作者:行者123 更新时间:2023-12-04 15:17:47 26 4
gpt4 key购买 nike

我正在尝试使用 Cpack 构建一个正确命名的 Debian 包。我的 CMakeLists.txt 中有以下内容:

set(CPACK_PACKAGE_NAME "something")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "9")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")

但我得到的文件名为:
 something-0.9.0-Linux.deb

代替:
something-0.9.0_amd64.deb

我查看了各种文档页面,但没有找到答案。

最佳答案

Cpack 没有 CPACK_DEBIAN_PACKAGE_FILE_NAME , 可能这应该报告为错误,并非所有 GNU/Linux-BSD 系统都具有相同的包命名约定。
现在,您可以设置 CPACK_PACKAGE_FILE_NAME 默认设置为:

${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}.
按照链接阅读完整的文档页面。

CPACK_DEBIAN_PACKAGE_ARCHITECTURE

The Debian package architecture

Mandatory : YES
Default : Output of `dpkg --print-architecture` (or 'i386' if dpkg is not found)

您可以将文件名设置为: set(CPACK_PACKAGE_FILE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.")顺便说一句,如果它们很好,则无需覆盖默认值。
  • CPACK_DEBIAN_PACKAGE_ARCHITECTURE默认为 dpkg --print-architecture
  • CPACK_DEBIAN_PACKAGE_VERSION默认为 CPACK_PACKAGE_VERSION它本身是从 major.minor.patch 构建的.
  • 关于debian - Cmake/Cpack Debian 打包 - 生成正确的包名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50185463/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com