使用 CPack 自动启动创建 deb 包 [关闭]
Posted
技术标签:
【中文标题】使用 CPack 自动启动创建 deb 包 [关闭]【英文标题】:Create deb package with autostart by CPack [closed] 【发布时间】:2018-11-28 13:05:09 【问题描述】:我正在构建一个应该作为服务运行的 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 有一个现成的解决方案来安装 system.d 服务?
【问题讨论】:
为什么否定??? 不是我的反对意见,但这是一个广泛的问题,没有迹象表明您已经研究过该主题或实际尝试过任何事情。也许您可以edit 您的问题包含一些背景知识,包括您目前拥有的代码。 你可以这样设置一个 CPACK 变量:set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE $CMAKE_SOURCE_DIR/make/rpm/post")
在 post 脚本中运行你想要的任何东西。
【参考方案1】:
您可以将add_custom_command()
与POST_BUILD
参数一起使用。类似的东西:
add_custom_command(TARGET $MY_TARGET POST_BUILD COMMAND service my-service start)
【讨论】:
不,这些是构建过程的解决方案。我需要在安装后运行脚本。 好的,你可以这样做install(CODE "execute_process(COMMAND systemctl enable wb-rules && service wb-rules start)")
find here
这个方案也在deb包的创建过程中执行脚本。我正在寻找一种解决方案,允许脚本在用户计算机上安装 Debian 软件包期间运行。脚本应该在“apt-get install my_package.deb”之后执行
我认为这与 cmake 无关。以上是关于使用 CPack 自动启动创建 deb 包 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
CPACK_DEB_PACKAGE_COMPONENT 实际上做了啥?