在使用cpack创建deb包后运行脚本



我正在尝试使用cpack创建一个deb包。但是由于包中的一个错误,它正在创建具有错误权限的文件'md5sum ',我在使用软件中心安装deb包时收到警告。我有一个脚本,将改变从deb包文件的权限。但是我很困惑如何自动运行脚本一旦包制作。

您可以使用这样的安装后脚本:

set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_NAME}/contrib/postinst;")

我使用了以下方法

使用的脚本包含以下内容

#!/bin/sh
set -e
mkdir fix_up_deb
dpkg-deb -x @CPACK_PACKAGE_FILE_NAME@.deb fix_up_deb
dpkg-deb --control @CPACK_PACKAGE_FILE_NAME@.deb fix_up_deb/DEBIAN
rm @CPACK_PACKAGE_FILE_NAME@.deb
chmod 0644 fix_up_deb/DEBIAN/md5sums
find -type d -print0 |xargs -0 chmod 755
fakeroot dpkg -b fix_up_deb @CPACK_PACKAGE_FILE_NAME@.deb
rm -rf fix_up_deb

然后使用

配置
CONFIGURE_FILE("${PROJECT_SOURCE_DIR}/debian/fixup_deb.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/fixup_deb.sh" @ONLY IMMEDIATE)

然后运行它一旦包被构建使用(我没有测试过这一步)

add_custom_command(TARGET package POST_BUILD COMMAND bash fixup_deb.sh WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )

或者从构建目录

手动运行它
bash fixup_deb.sh

最新更新