Я пытаюсь создать пакет deb, используя cpack. Но из-за ошибки в cpack он создает файл «md5sums» с неправильными разрешениями, и я получаю предупреждение при установке пакета deb с помощью программного центра. У меня есть скрипт, который изменит разрешения файла из пакета deb. Но я смущен тем, как автоматически запускать сценарий после создания пакета.запустить сценарий после создания пакета deb с помощью cpack
0
A
ответ
0
Вы можете использовать пост-скрипт установки, как это:
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECT_NAME}/contrib/postinst;")
0
Я использовал следующий метод
использовал скрипт, который имеет следующее содержание
#!/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)
Затем запустите его один раз пакет построен с использованием (I havnt тестировал этот шаг)
add_custom_command(TARGET package POST_BUILD COMMAND bash fixup_deb.sh WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
Или запустить его вручную из каталога сборки
bash fixup_deb.sh
вы поняли, это не так ... я хотел изменить разрешение файла внутри пакета ... например, сам скрипт postint – nithin
Команда INSTALL CMake имеет параметр PERMISSIONS - он определяет разрешения для установленных файлов. Как вы решили проблему? –
нет, мы не можем указать разрешения, потому что этот файл создается cpack iteslf – nithin