Я пытаюсь создать пакет deb с помощью cpack. Но из-за ошибки в cpack он создает файл «md5sums» с неправильными разрешениями, и я получаю предупреждение при установке пакета deb с помощью центра программного обеспечения. У меня есть скрипт, который изменит права доступа к файлу из пакета deb. Но я не понимаю, как автоматически запускать скрипт после создания пакета.
запустить скрипт после создания пакета deb с помощью cpack
Ответы (2)
Вы можете использовать скрипт после установки следующим образом:
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_NAME}/contrib/postinst;")
person
Andrey G.A
schedule
13.07.2015
вы поняли это неправильно... я хотел изменить разрешение файла внутри пакета... например, сам скрипт postint
- person Nithin; 13.07.2015
Команда CMake INSTALL имеет параметр PERMISSIONS, который указывает разрешения для установленных файлов. Как вы решили свою проблему?
- person Andrey G.A; 14.07.2015
нет, мы не можем указать разрешения, потому что этот файл создан 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