手动更新包时 .changes 和 .dsc 文件之间的区别?

ana*_*nik 3 packaging debian

.changes 和 .dsc 文件有什么区别?

Debian Policy说明了必填字段集,但总体上忽略了本质和含义。当您可以拥有唯一一个时,为什么要拥有两个(实际上是三个)?

这个 .changes 文件可以从 .dsc 派生出来吗(反之亦然)?
转化过程是怎样的?

为什么?我正在尝试创建 Python 脚本,用于自动更新 Debian 或 Ubuntu 系统的纯 Python 包。它需要是跨平台的,因为在没有经典 Debian 工具链的系统上开发 Python 东西是很常见的。

Fah*_*tha 5

Debian 源代码控制文件.dsc是 Debian 软件包源代码的三个文件之一。另外两个是原始上游源码包,其通常的形式为*.orig.tar.gz,和diff文件,它可以是像一个文件*.diff.gz(老式)或debian.tar.gz(3.0(被子)源格式)。

在这两种情况下(旧式diff.gz或新式debian.tar.gz),原始 tarball 被解包,并应用差异,从而产生一个带有debian子目录的源目录。在前一种情况下,Debian 应用到上游源的补丁直接应用到源。在后一种情况下,Debian 应用到上游源的补丁位于debian/patches目录中。

dsc文件包含有关上述其他两个文件的信息,包括校验和,以便在解包过程中可以检测到损坏。

changes文件类似,但还包含有关二进制 ( deb) 文件的信息。它的用途不同——存档软件使用它来跟踪存档中的更新,其中包括源包和二进制包。从用户的角度来看,该changes文件并不是那么有趣,除非您计划维护自己的包存档。

无论是changesdsc当二进制包从Debian来源内置文件获得。因此,在实践中,用户不需要编辑文件dscchanges文件。

注意:运行 Debian 软件包构建过程的典型方法是debuild -uc -us使用devscripts软件包中的debuild脚本执行。这将创建以下文件(对于源格式 3.0):、、、(构建日志)和 Debian 二进制文件。有时,如果源目录是从预先存在的 Debian 源中解压出来的,则和将已经存在,但如果版本号未更改,则将被覆盖。*.changes*.dsc*.debian.tar.gz*.build*.dsc*.debian.tar.gz