Ton*_*yer 6 debian packaging dpkg deb debhelper
我有一个project.init在debian目录文件(连同rules,control等等),我有dh_installinit我的rules文件(在binary-arch规则).
当dpkg-buildpackage完成后,启动脚本已被复制到debian/project/etc/init.d/project,并已经创造了各种预/后脚本.
但是,当我实际安装.deb(with dpkg -i)时,init.d脚本没有安装,因此我必须缺少此过程的一部分." 新维护者指南 "在init.d详细信息上相当稀疏(它基本上表示不使用它们,因为它们太先进了).
dh_installinit命令的详细输出是:
dh_installinit
install -p -m755 debian/project.init debian/project/etc/init.d/project
echo "# Automatically added by dh_installinit">> debian/project.postinst.debhelper
sed "s/#SCRIPT#/project/;s/#INITPARMS#/defaults/;s/#ERROR_HANDLER#/exit \$?/" /usr/share/debhelper/autoscripts/postinst-init >> debian/project.postinst.debhelper
echo '# End automatically added section' >> debian/project.postinst.debhelper
echo "# Automatically added by dh_installinit">> debian/project.prerm.debhelper
sed "s/#SCRIPT#/project/;s/#INITPARMS#/defaults/;s/#ERROR_HANDLER#/exit \$?/" /usr/share/debhelper/autoscripts/prerm-init >> debian/project.prerm.debhelper
echo '# End automatically added section' >> debian/project.prerm.debhelper
echo "# Automatically added by dh_installinit">> debian/project.postrm.debhelper
sed "s/#SCRIPT#/project/;s/#INITPARMS#/defaults/;s/#ERROR_HANDLER#/exit \$?/" /usr/share/debhelper/autoscripts/postrm-init >> debian/project.postrm.debhelper
echo '# End automatically added section' >> debian/project.postrm.debhelper
Run Code Online (Sandbox Code Playgroud)
你的包是否在Conffiles块下有一个init脚本的条目/var/lib/dpkg/status,例如
Package: <project>
...
Conffiles:
/etc/init.d/<project> d41d8cd98f00b204e9800998ecf8427e
Run Code Online (Sandbox Code Playgroud)
并/var/lib/dpkg/info/<project>.conffiles包含/etc/init.d/<project>?
这是发生了什么......
默认情况下,init脚本被标记为配置文件,因为它们位于其下/etc.1
我猜你安装了包,删除了init文件,然后重新安装了包.
在这种情况下,删除init文件计为修改它2,并dpkg拒绝"覆盖""配置文件".
您应该能够通过删除Conffiles部分来解决问题/var/lib/dpkg/status.
笔记:
d41d8cd98f00b204e9800998ecf8427e,但任何不匹配的校验和都将导致相同的行为小智 1
此时,我将检查创建的 .deb 文件的内容。您可以使用 dpkg-deb -c 来实现此目的。
如果 init 脚本位于 .deb 中,则应将其安装在 /etc/init.d 中,如下所示:
... drwxr-xr-x 根/根 0 2009-06-03 14:01 ./etc/ drwxr-xr-x root/root 0 2009-06-03 14:01 ./etc/init.d/ -rwxr-xr-x 根/根 2558 2009-02-13 11:27 ./etc/init.d/balance ...
如果您运行最新版本的 Debian,则软件包的内容可能是从 debian/tmp 生成的,而不是像您期望的那样从 debian/project 生成。您可以使用 dh_install 将文件从 debian/projet 移动到 debian/tmp。
| 归档时间: |
|
| 查看次数: |
9044 次 |
| 最近记录: |