7

我是 Debian 打包的新手,我相信这是一个相当基本的问题,但我很尴尬地说我已经在 Google 上被淘汰了。

我有一个使用 CMake 构建并使用 CPack 打包 debian 的 C++ 项目。这个项目有一个服务组件(systemd 风格)。我的目标是在安装软件包时启用服务并自动启动。

我的研究产生了两种方法:

systemctl1)在 Debian 的 {pre,post}{inst,rm} 脚本中运行各种命令。需要注意正确处理安装、删除和升级方案。

2) 只需将目录放在project.service里面debian,让debhelper(使用dh_systemd_enable)处理服务安装并“自动”启动。

选项 #2 显然是首选,因为 {pre,post}{inst,rm} 非常手动,因此容易出错,但我不知道是否有一种支持良好的方式来利用debhelperCPack。

问题:我想避免在我的项目的 CMake 中重写 debian 打包内容,因为它已经存在了一段时间并且运行良好。CPackDeb和之间的关系(如果有的话)debhelper我不清楚——CPack 可以利用这些dh_systemd_enable功能还是我必须在 {pre,post}{inst,rm} 脚本中手动管理服务?

4

0 回答 0