debian lintian警告不存在文件

debian lintian警告不存在文件,debian,lintian,Debian,Lintian,我从林寻那里得到一个警告和一个错误: W: openrobertalab: init.d-script-not-marked-as-conffile etc/init.d/openrobertalab E: openrobertalab: init.d-script-not-included-in-package etc/init.d/openrobertalab 我不明白的是,我的包中没有这样的文件etc/init.d/openrobertalab: dpkg --contents open

我从林寻那里得到一个警告和一个错误:

W: openrobertalab: init.d-script-not-marked-as-conffile etc/init.d/openrobertalab
E: openrobertalab: init.d-script-not-included-in-package etc/init.d/openrobertalab
我不明白的是,我的包中没有这样的文件
etc/init.d/openrobertalab

dpkg --contents openrobertalab_1.3.0-1_amd64.deb | grep etc
drwxr-xr-x root/root         0 2015-09-22 10:53 ./etc/
drwxr-xr-x root/root         0 2015-09-22 10:53 ./etc/dbus-1/
drwxr-xr-x root/root         0 2015-09-22 10:53 ./etc/dbus-1/system.d/
-rw-r--r-- root/root       489 2015-09-22 10:53 ./etc/dbus-1/system.d/openrobertalab.conf
如果我按照lintiants的建议创建一个
debian/openrobertalab.conffiles
来列出这个不存在的文件,那么包构建就会失败:

dpkg-deb: error: conffile `etc/init.d/openrobertalab' does not appear in package
dh_builddeb: dpkg-deb --build debian/openrobertalab .. returned exit code 2
make: *** [binary] Error 1
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2

有什么想法吗?

我通过在我的规则文件中添加以下行来“修复”这个问题:

override_dh_installinit:
# don't do anything, silences lintian warnings

首先,联系文档,了解林寻错误的实际含义:

 lintian-info --tags \
       init.d-script-not-included-in-package \
       init.d-script-not-marked-as-conffile
对第一个警告的解释表明,包的
postinst
脚本安装了init脚本,但它不是包的一部分


因此,正确的解决方案是修复软件包的维护者脚本。

我猜它存在于构建的
etc
目录中,但不确定构建过程的确切路径和阶段。我猜您需要扩充
debian/rules
以实际将其包含在包中。我搜索了包的temp dir,根本没有etc/init.d:/要正确分析问题,我们需要查看更多代码;e、 g.
debian/
的内容(或打包回购的链接)相反,您可能想知道为什么
dh_installinit
首先要安装脚本。当然,当我搜索错误时,我会看到这样的页面:这些页面非常没有帮助。我在林寻文档()的检查中也没有发现任何有用的东西。感谢您指出“lintian info--tags”,这让我无法理解为什么该工具没有在输出中包含此内容:/但是为了评论您的结论,我的postinst脚本没有安装任何东西(),假设这是手动维护的debian/postinst脚本,那么实际的postinst脚本是什么样子的(在dh向其添加内容之后)?在哪里可以找到它?在生成的.deb文件中:例如,
ar xvf yourpackage.deb&&tar xvf control.tar.gz&&cat postinst