Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 通过CPack使用autostart创建deb包_Bash_Cmake_Systemd_Cpack - Fatal编程技术网

Bash 通过CPack使用autostart创建deb包

Bash 通过CPack使用autostart创建deb包,bash,cmake,systemd,cpack,Bash,Cmake,Systemd,Cpack,我正在构建一个应该作为服务运行的Debian包。另外,我有一个文件描述我的服务 install(TARGETS "${SERVICE_NAME}" DESTINATION "bin" COMPONENT "${SERVICE_NAME}") install(FILES "${SERVICE_NAME}.service" DESTINATION "/lib/systemd/system/" COMPONENT "${SERVICE_

我正在构建一个应该作为服务运行的Debian包。另外,我有一个文件描述我的服务

install(TARGETS "${SERVICE_NAME}"
        DESTINATION "bin"
        COMPONENT "${SERVICE_NAME}")

install(FILES "${SERVICE_NAME}.service"
        DESTINATION "/lib/systemd/system/"
        COMPONENT "${SERVICE_NAME}")

cpack_add_component_group("${SERVICE_NAME}")

cpack_add_component("${SERVICE_NAME}"
                    DISPLAY_NAME "${SERVICE_NAME}"
                    DESCRIPTION "${DESCRIPTION}"
                    GROUP "${SERVICE_NAME}"
                    INSTALL_TYPES Full)
我想在安装包后运行:

systemctl enable wb-rules && service wb-rules start
作为另一个选项,CPack可能有一个现成的安装systems.d services的解决方案?

您可以使用
POST\u BUILD
参数。比如:

add_custom_command(TARGET ${MY_TARGET} POST_BUILD COMMAND service my-service start)

为什么是否定的???不是我的反对票,但这是一个广泛的问题,没有迹象表明你已经研究过这个话题或实际尝试过任何东西。也许您可以将您的问题包括一些背景知识,包括您目前掌握的代码。您可以将CPACK变量设置为:
set(CPACK\u RPM\u POST\u INSTALL\u SCRIPT\u FILE${CMAKE\u SOURCE\u DIR}/make/RPM/POST”)
并在post脚本中运行您想要的任何内容。不,这些是构建过程的解决方案。我需要在安装后运行脚本。这样您就可以执行
安装(代码“execute_process(COMMAND systemctl enable wb rules&&service wb rules start)”)
find此解决方案在创建deb包的过程中也会执行脚本。我正在寻找一种解决方案,允许脚本在用户计算机上安装Debian包的过程中运行。脚本应该在“apt get install my_package.deb”之后执行。我认为这与cmake无关。