首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.deb包中的DEBIAN还是debian?

.deb包中的DEBIAN还是debian?
EN

Ask Ubuntu用户
提问于 2021-02-28 04:12:40
回答 2查看 1.3K关注 0票数 6

我正在尝试创建一个.deb包,并且不确定包的文件结构。包含controlchangelogrules等的目录是否应该命名为DEBIANdebian

我使用dpkg-deb来打包它,它似乎需要DEBIAN,而且我试图使用Lintian来检查它,而且它没有识别changelogcopyright文件。Lintian抛出错误debian-changelog-file-missingno-copyright-file,但随后警告unknown-control-file changelogunknown-control-file copyright。看看此页,它建议使用debian,我将目录重命名为该目录,但它会导致dpkg-deb失败。在阅读Debian政策手册时,它通常在示例中使用debian,但偶尔使用DEBIAN,这让我怀疑在某些情况下两者是否都是必要的。怎样才是正确的方法?

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2021-02-28 04:20:16

在创建包时,您有一个debian目录,其中包含制作包所需的数据( control文件、ruleschangelog等)。dpkg-deb并不是制作软件包的常用方法--它只是提供了一种快速组装包的方法。您通常使用dpkg-buildpackage代替。

票数 6
EN

Ask Ubuntu用户

发布于 2021-02-28 16:36:22

源包(即尚未编译的源代码树)使用小写的debian目录。例如,如果您使用dpkg-buildpackage编译C程序并生成二进制.deb,那么您将有如下所示的源代码树:

代码语言:javascript
复制
foo-1.0/
 ├─debian/
 │  ├─changelog
 │  └─control
 ├─main.c
 ├─main.h
 └─Makefile

大写的DEBIAN显然只存在于二进制包(即编译的.deb文件本身)中,在它们的“control.tar”存档中。

但是,根据dpkg文档,这个'DEBIAN‘目录是一个历史遗留下来的非常老的dpkg包格式(如2000年代前的版本,请参阅man deb-oldman deb)。相反,所有新的.deb包都将控制文件直接放在“control.tar”存档的顶层:

代码语言:javascript
复制
$ tar -tf control.tar
./changelog
./control
./postinst
票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1319936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档