запустить скрипт после создания пакета deb с помощью cpack

Я пытаюсь создать пакет deb с помощью cpack. Но из-за ошибки в cpack он создает файл «md5sums» с неправильными разрешениями, и я получаю предупреждение при установке пакета deb с помощью центра программного обеспечения. У меня есть скрипт, который изменит права доступа к файлу из пакета deb. Но я не понимаю, как автоматически запускать скрипт после создания пакета.


person Nithin    schedule 24.05.2015    source источник


Ответы (2)


Вы можете использовать скрипт после установки следующим образом:

set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_NAME}/contrib/postinst;")
person Andrey G.A    schedule 13.07.2015
comment
вы поняли это неправильно... я хотел изменить разрешение файла внутри пакета... например, сам скрипт postint - person Nithin; 13.07.2015
comment
Команда CMake INSTALL имеет параметр PERMISSIONS, который указывает разрешения для установленных файлов. Как вы решили свою проблему? - person Andrey G.A; 14.07.2015
comment
нет, мы не можем указать разрешения, потому что этот файл создан cpack iteslf - person Nithin; 14.07.2015

Я использовал следующий метод

использовал скрипт, который имеет следующее содержание

#!/bin/sh
set -e
mkdir fix_up_deb
dpkg-deb -x @[email protected] fix_up_deb
dpkg-deb --control @[email protected] fix_up_deb/DEBIAN
rm @[email protected]
chmod 0644 fix_up_deb/DEBIAN/md5sums
find -type d -print0 |xargs -0 chmod 755
fakeroot dpkg -b fix_up_deb @[email protected]
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
person Nithin    schedule 14.07.2015