我正在尝试使用 cpack 创建一个 deb 包。但是由于 cpack 中的一个错误,它正在创建具有错误权限的文件“md5sums”,并且在使用软件中心安装 deb 包时我收到警告。我有一个脚本,它将更改 deb 包中文件的权限。但是我对如何在打包后自动运行脚本感到困惑。
问问题
1719 次
2 回答
1
您可以像这样使用安装后脚本:
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_NAME}/contrib/postinst;")
于 2015-07-13T12:45:27.203 回答
0
我使用了以下方法
使用了具有以下内容的脚本
#!/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
于 2015-07-14T13:20:00.270 回答