我在尝试构建依赖于其他几个包的包时遇到问题,其中一些包含服务。所述服务尝试在 postinst 脚本中启动,结果构建失败,因为在构建环境中,systemd
未安装。
我希望看到一些有类似问题的官方软件包。此时,我不需要运行依赖项的服务,但 postinst 脚本仍然需要工作(显然?!),在这种情况下,它会尝试手动启动服务,因为名称与包名(另外,那个包中实际上有 2 个服务,但我离题了)。
我的脚本目前尝试这样做:
systemctl enable ipload
systemctl start ipload
在任何 Ubuntu 系统上安装包时它工作得很好,但在构建依赖于它的-dev
包的系统时失败。
我的问题是:
存在类似问题的现有官方 Debian 软件包有哪些:依赖于通常启动服务并且在构建中需要的其他软件包?
这样我就可以让我自己的包以类似的方式工作。
你应该在你的包结构中使用
dh_installsystemd
来设置你的服务;这将在您的维护者脚本中生成适当的健壮片段。参见g810-led
例如debian/rules
;这显示了如何处理与包名称不匹配的单元:(你不应该使用
--no-stop-on-upgrade
or--no-start
。)结果
postinst
包含这使用
deb-systemd-helper
which 处理带或不带的安装systemd
。您还会看到相应的
prerm
andpostrm
。-dev
然而,包裹最终取决于包裹运输服务的情况并不常见(但并非闻所未闻) ;您可能希望进一步拆分(例如一个-dev
包、一个库包和一个包含服务的包)。