【发布时间】:2012-09-04 03:40:54
【问题描述】:
我使用“dh_make --native”对一些源代码进行了去边化处理。控制文件指定三个包:
blahd
libblahd1
libblahd1-dev
现在blahd 有一个init.d 脚本,虽然一旦构建并安装了包,它就会被放入/etc/init.d,但它并没有被启用。所以我认为我需要这样写:
insserv blahd
在 debian/postinst.但是如何在 debian/postinst 中判断正在安装的是 blahd 或 libblahd1 还是 libblahd1-dev?
【问题讨论】:
-
它不会为每个二进制包创建一个 postinst 吗?因此,请使用
debian/libblahd1.postinst和debian/libblahd1-dev.postinst创建两个不同的脚本,或者从模板生成它们。 -
并且不要在你的包中直接调用
insserv,而是使用invoke-rc.d;见debian.org/doc/debian-policy/ch-opersys.html#s-sysvinit和debian.org/doc/manuals/maint-guide/dother.en.html#initd -
感谢 Tripleee 您回答了我提出的问题。但是,在阅读了 barti_ddu 提供的第二个链接后,我意识到我问错了问题。我应该说:你如何添加一个初始化脚本并指定它应该添加到哪个包中。我现在知道答案是将文件命名为 debian/
.init。如果你这样做,dpkg-buildpackage 会自动为你创建一个 postinst。干杯。 -
您可能想为自己写一个答案并“接受”它,所以这个问题不会显示为未回答。
-
谢谢保罗。我是新手......不幸的是我现在不能,因为它已被关闭为题外话。我不知道为什么它被认为是题外话。很高兴有人告诉我,这样我就可以避免再次这样做了。