CPACK是否可以删除其在构建过程中创建的临时DEB软件包?

发布于 2025-02-08 00:43:27 字数 2530 浏览 0 评论 0原文

cpack似乎在临时目录中生成了debian软件包,然后复制 将其发送到目标文件夹。有没有办法cpack删除临时Debian软件包?对于大包装,它占用了两倍的磁盘空间。另外,从CI中,我不能使用通用通配符匹配来拾取所有.deb文件,而无需捡起临时文件。

cmake_minimum_required(VERSION 3.1)

project(foo NONE)

install(
    FILES
        foo.txt
    DESTINATION
        /usr/share/doc/foo
)

set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
set(CPACK_DEBIAN_PACKAGE_DEBUG "ON")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "FooBar Inc.")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "any")
include(CPack)
~/dev/scratch/cpack_test
❯ mkdir -p build

~/dev/scratch/cpack_test
❯ cd build

~/dev/scratch/cpack_test/build
❯ cmake ../ && cpack .
-- Configuring done
-- Generating done
-- Build files have been written to: /home/XXXXX/dev/scratch/cpack_test/build
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: foo
CPack: - Install project: foo []
CPack: Create package
CPackDeb Debug: Using only user-provided dependencies
-- CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.
CPackDeb:Debug: CPACK_TOPLEVEL_DIRECTORY          = '/home/XXXXX/dev/scratch/cpack_test/build/_CPack_Packages/Linux/DEB'
CPackDeb:Debug: CPACK_TOPLEVEL_TAG                = 'Linux'
CPackDeb:Debug: CPACK_TEMPORARY_DIRECTORY         = '/home/XXXXX/dev/scratch/cpack_test/build/_CPack_Packages/Linux/DEB/foo-0.1.1-Linux'
CPackDeb:Debug: CPACK_OUTPUT_FILE_NAME            = 'foo-0.1.1-Linux.deb'
CPackDeb:Debug: CPACK_OUTPUT_FILE_PATH            = '/home/XXXXX/dev/scratch/cpack_test/build/foo-0.1.1-Linux.deb'
CPackDeb:Debug: CPACK_PACKAGE_FILE_NAME           = 'foo-0.1.1-Linux'
CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY   = 'foo 0.1.1'
CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = '/home/XXXXX/dev/scratch/cpack_test/build/_CPack_Packages/Linux/DEB/foo-0.1.1-Linux.deb'
CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = ''
CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_SOURCE       = ''
CPack: - package: /home/XXXXX/dev/scratch/cpack_test/build/foo-0.1.1-Linux.deb generated
~/dev/scratch/cpack_test/build
❯ sha256sum foo-0.1.1-Linux.deb
33ce4c3c4c5ff526709ace00311e3caf787419c0a91777e22aa0f020f7038b52  foo-0.1.1-Linux.deb

~/dev/scratch/cpack_test/build
❯ sha256sum _CPack_Packages/Linux/DEB/foo-0.1.1-Linux.deb
33ce4c3c4c5ff526709ace00311e3caf787419c0a91777e22aa0f020f7038b52  _CPack_Packages/Linux/DEB/foo-0.1.1-Linux.deb

tia。

CPack seems to generate the debian package in a temporary directory then copy it to the destination folder. Is there a way for CPack to delete the temporary debian package? For large packages, it takes up twice the disk space. Also from CI, I can't use a generic wildcard match to pickup all .deb files without picking up the temporary ones.

cmake_minimum_required(VERSION 3.1)

project(foo NONE)

install(
    FILES
        foo.txt
    DESTINATION
        /usr/share/doc/foo
)

set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME ${CMAKE_PROJECT_NAME})
set(CPACK_DEBIAN_PACKAGE_DEBUG "ON")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "FooBar Inc.")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "any")
include(CPack)
~/dev/scratch/cpack_test
❯ mkdir -p build

~/dev/scratch/cpack_test
❯ cd build

~/dev/scratch/cpack_test/build
❯ cmake ../ && cpack .
-- Configuring done
-- Generating done
-- Build files have been written to: /home/XXXXX/dev/scratch/cpack_test/build
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: foo
CPack: - Install project: foo []
CPack: Create package
CPackDeb Debug: Using only user-provided dependencies
-- CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.
CPackDeb:Debug: CPACK_TOPLEVEL_DIRECTORY          = '/home/XXXXX/dev/scratch/cpack_test/build/_CPack_Packages/Linux/DEB'
CPackDeb:Debug: CPACK_TOPLEVEL_TAG                = 'Linux'
CPackDeb:Debug: CPACK_TEMPORARY_DIRECTORY         = '/home/XXXXX/dev/scratch/cpack_test/build/_CPack_Packages/Linux/DEB/foo-0.1.1-Linux'
CPackDeb:Debug: CPACK_OUTPUT_FILE_NAME            = 'foo-0.1.1-Linux.deb'
CPackDeb:Debug: CPACK_OUTPUT_FILE_PATH            = '/home/XXXXX/dev/scratch/cpack_test/build/foo-0.1.1-Linux.deb'
CPackDeb:Debug: CPACK_PACKAGE_FILE_NAME           = 'foo-0.1.1-Linux'
CPackDeb:Debug: CPACK_PACKAGE_INSTALL_DIRECTORY   = 'foo 0.1.1'
CPackDeb:Debug: CPACK_TEMPORARY_PACKAGE_FILE_NAME = '/home/XXXXX/dev/scratch/cpack_test/build/_CPack_Packages/Linux/DEB/foo-0.1.1-Linux.deb'
CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_CONTROL_STRICT_PERMISSION = ''
CPackDeb:Debug: CPACK_DEBIAN_PACKAGE_SOURCE       = ''
CPack: - package: /home/XXXXX/dev/scratch/cpack_test/build/foo-0.1.1-Linux.deb generated
~/dev/scratch/cpack_test/build
❯ sha256sum foo-0.1.1-Linux.deb
33ce4c3c4c5ff526709ace00311e3caf787419c0a91777e22aa0f020f7038b52  foo-0.1.1-Linux.deb

~/dev/scratch/cpack_test/build
❯ sha256sum _CPack_Packages/Linux/DEB/foo-0.1.1-Linux.deb
33ce4c3c4c5ff526709ace00311e3caf787419c0a91777e22aa0f020f7038b52  _CPack_Packages/Linux/DEB/foo-0.1.1-Linux.deb

TIA.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文