我有以下问题:
我只能访问二进制文件。我试图从一个二进制文件制作一个完全自动化的.deb
包。我将它打包并工作,除了服务文件。
我在 debian 文件夹下创建了服务文件
hello
-- hello
-- debian/hello.service
我的规则文件如下所示
$ cat debian/rules
#!/usr/bin/make -f
%:
dh $@
override_dh:install:
dh_install hello usr/bin
包正在创建,但它没有启动服务,也没有在/etc/systemd/system/
.
postinst 文件如下 #!/bin/bash set -e
if [ $1 = configure] || [$1 = abort-upgrade]; then
if [ -x /etc/init.d/hello ]; then
update-rc.d hello defaults >/dev/null
您需要调用适当的 systemd 服务助手(
dh_installsystemd
兼容级别 12)。解决这一切的最简单方法是依赖
dh
序列。即使没有要构建的东西,它也会做正确的事情:这将确保所有其他帮助程序按顺序运行,包括 systemd 帮助程序。
如果 debhelper 兼容性级别低于 10,则需要显式启用 systemd 序列:
(服务文件将以 结尾
/lib/systemd/system
,而不是/etc/systemd/system
。)如果你写,你甚至可以完全放弃覆盖
进入
debian/install
(或者debian/hello.install
,假设您的包名为hello
)。