Cmake CPACK_DEBIAN_<;组件>_包\u控制\u额外被忽略

Cmake CPACK_DEBIAN_<;组件>_包\u控制\u额外被忽略,cmake,deb,cpack,Cmake,Deb,Cpack,我正在尝试为cmake项目构建deb包。这个项目(foundationdb——但这可能与这个问题无关)包含两个组件,我想为它构建两个包。然而,这似乎并不奏效。特别是,似乎忽略了对控制归档的添加。这是我当前的cpack配置: set(CPACK_DEB_COMPONENT_INSTALL ON) set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON) # clients set(CPACK_DEBIAN_clients_PACKAGE_CONTROL_STRIC

我正在尝试为cmake项目构建deb包。这个项目(foundationdb——但这可能与这个问题无关)包含两个组件,我想为它构建两个包。然而,这似乎并不奏效。特别是,似乎忽略了对控制归档的添加。这是我当前的cpack配置:

set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON)
# clients
set(CPACK_DEBIAN_clients_PACKAGE_CONTROL_STRICT_PERMISSION ON)
set(CPACK_DEBIAN_clients_PACKAGE_SECTION "database")
set(CPACK_DEBIAN_clients_PACKAGE_DEPENDS "adduser, libc6 (>= 2.11)")
set(CPACK_DEBIAN_clients_PACKAGE_HOMEPAGE "https://www.foundationdb.org")
set(CPACK_DEBIAN_clients_PACKAGE_CONTROL_EXTRA
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-clients/postinst)

set(CPACK_DEBIAN_server_PACKAGE_CONTROL_STRICT_PERMISSION ON)
set(CPACK_DEBIAN_server_PACKAGE_SECTION "database")
set(CPACK_DEBIAN_server_PACKAGE_DEPENDS "adduser, libc6 (>= 2.11), python (>= 2.6)")
set(CPACK_DEBIAN_server_PACKAGE_CONTROL_EXTRA
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/conffiles
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/preinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/prerm
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postrm)
但是,当我在服务器上使用cpack dpkg-I构建包时,包会给出以下输出(客户端的输出看起来非常相似,这个包也有相同的问题):

这意味着控制文件丢失。这意味着在安装和卸载期间不会运行脚本

我已经检查了CPackConfig.cmake中的变量设置是否正确,当我构建一个包而不是组件时,添加额外组件似乎可以正常工作


这里有我遗漏的东西吗?我正在使用cmake 3.10.2版

在尝试了我在网上找到的一些东西并添加了一些内容之后,我终于发现了问题。组件名称必须全部大写。比如这条线

set(CPACK_DEBIAN_server_PACKAGE_CONTROL_EXTRA
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/conffiles
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/preinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/prerm
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postrm)
一定是

set(CPACK_DEBIAN_SERVER_PACKAGE_CONTROL_EXTRA
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/conffiles
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/preinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/prerm
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postrm)

我在文档中看不到这一点,这对CPackRPM并不重要,但很可能我只是有点盲目…

From:“注意,
指的是用大写字母写的分组名称。”是的-确认了,我只是有点盲目。奇怪的是,这对某些安装程序有效,而对其他安装程序无效。但是我可以通过正确阅读CPackRPM的文档来节省大量的工作,它有一个完全相同的句子,关于大写的
。但它也有关于兼容性的“注意事项”,即“同一个cased”
也适用。在CPack中似乎没有针对不同包的通用方法,只需阅读适当的文档即可。
set(CPACK_DEBIAN_SERVER_PACKAGE_CONTROL_EXTRA
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/conffiles
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/preinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postinst
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/prerm
  ${CMAKE_SOURCE_DIR}/packaging/deb/DEBIAN-foundationdb-server/postrm)