我正在尝试创建一个.deb包,并且不确定包的文件结构。包含control、changelog、rules等的目录是否应该命名为DEBIAN或debian?
我使用dpkg-deb来打包它,它似乎需要DEBIAN,而且我试图使用Lintian来检查它,而且它没有识别changelog或copyright文件。Lintian抛出错误debian-changelog-file-missing和no-copyright-file,但随后警告unknown-control-file changelog和unknown-control-file copyright。看看此页,它建议使用debian,我将目录重命名为该目录,但它会导致dpkg-deb失败。在阅读Debian政策手册时,它通常在示例中使用debian,但偶尔使用DEBIAN,这让我怀疑在某些情况下两者是否都是必要的。怎样才是正确的方法?
发布于 2021-02-28 04:20:16
在创建包时,您有一个debian目录,其中包含制作包所需的数据( control文件、rules、changelog等)。dpkg-deb并不是制作软件包的常用方法--它只是提供了一种快速组装包的方法。您通常使用dpkg-buildpackage代替。
发布于 2021-02-28 16:36:22
源包(即尚未编译的源代码树)使用小写的debian目录。例如,如果您使用dpkg-buildpackage编译C程序并生成二进制.deb,那么您将有如下所示的源代码树:
foo-1.0/
├─debian/
│ ├─changelog
│ └─control
├─main.c
├─main.h
└─Makefile大写的DEBIAN显然只存在于二进制包(即编译的.deb文件本身)中,在它们的“control.tar”存档中。
但是,根据dpkg文档,这个'DEBIAN‘目录是一个历史遗留下来的非常老的dpkg包格式(如2000年代前的版本,请参阅man deb-old和man deb)。相反,所有新的.deb包都将控制文件直接放在“control.tar”存档的顶层:
$ tar -tf control.tar
./changelog
./control
./postinsthttps://askubuntu.com/questions/1319936
复制相似问题