我正在尝试创建一个 .deb 包,但不确定包的文件结构。包含control
, changelog
,rules
等的目录应该被命名DEBIAN
还是debian
?
我是dpkg-deb
用来打包的,好像是require DEBIAN
,我想用lintian来检查,还是不识别changelog
orcopyright
文件。林田抛出错误debian-changelog-file-missing
,no-copyright-file
但后来警告unknown-control-file changelog
和unknown-control-file copyright
。查看此页面,它建议使用debian
,我将目录重命名为该目录,但它导致dpkg-deb
失败。通读Debian Policy Manual,它通常debian
在示例中使用,但偶尔使用DEBIAN
,这让我想知道在某些情况下是否可能需要两者。这样做的正确方法是什么?
创建包时,您有一个
debian
目录,其中包含制作包所需的数据(control
文件、文件、文件rules
等changelog
)。dpkg-deb
不是制作包装的常用方法 - 它只是提供了一种快速组装方法。你通常使用它dpkg-buildpackage
来代替。源包(即尚未编译的源树)使用小写
debian
目录。例如,如果您dpkg-buildpackage
要编译一个 C 程序并生成二进制 .deb,您将拥有这样的源代码树:大写字母
DEBIAN
显然只出现在二进制包中(即编译后的 .deb 文件本身),在它们的“control.tar”档案中。然而,根据 dpkg 文档,这个 'DEBIAN' 目录是非常古老的 dpkg 包格式的历史遗留物(如 2000 年代之前;参见和)。所有新的 .deb 包都将控制文件直接放在“control.tar”存档的顶层:
man deb-old
man deb