我觉得 debhelper 太乱了。Google 上关于 Debian 打包的大多数信息都是为现有的源包创建 Debian 包,或者围绕 Makefile 等进行 Debian-ize。
我有一个包 xyz-0.1,它只包含 shell 脚本,根本没有 Makefile。创建它的 Debian 包应该很容易,但我遇到了以下错误,
$ dh_make --createorig
...
$ cat debian/rules
...
build:
binary:
(There's nothing to do with build, because xyz-0.1 contains only shell scripts)
$ debuild
...
dpkg-genchanges: error: cannot read files list file: No such file or directory
dpkg-buildpackage: error: dpkg-genchanges gave error exit status 2
debuild: fatal error at line 1340:
dpkg-buildpackage -rfakeroot -D -us -uc failed
(debhelper 7.4.15ubuntu1)
虽然创建一个空文件“debian/files”可以解决这个问题,但这不是正确的方法。
一般来说,是否有一些关于如何使用 debhelper 围绕原始 Debian 软件包的指南、综合教程?
答案1
Debian 软件包参考指南是Debian 维护者指南(/usr/share/doc/maint-guide/
)。除此之外,dh_*
手册页还记录了构建自动化。Debian 政策(/usr/share/doc/debian-policy/
) 和Debian 开发者参考(/usr/share/doc/developers-reference/
)有补充建议。
添加:在目前的稳定版本(Debian lenny、Ubuntu 10.04)中debhelper
,默认debian/rules
文件已简化为两行,并且大部分操作都可以自动进行:
%:
dh $@
如果某些东西不起作用,请通过查看源代码/usr/bin/dh
并查看dh_*
它调用了哪些程序来进行调查。在调试软件包构建时,--after
和--remaining
选项dh
通常很有用。
至于debian/files
,除非您调整了构建规则,否则它不是强制性的。如果您需要帮助,请以原始英语(而不是您的重译)发布完整的错误消息序列(而不仅仅是最后一行)。了解dh-make
、debhelper
和devscripts
软件包的版本也可能会有所帮助。