Product SiteDocumentation Site

5.3. 源码包的结构

5.3.1. 格式

一个源码包通常包括三个文件,.dsc.orig.tar.gz.debian.tar.xz(或 .diff.gz)。它们允许从编程语言撰写的程序源代码文件中,创建二进制软件包(如前所述的 .deb 文件)。
.dsc (Debian Source Control) 文件是包括 RFC 2822 标头 (如同 control 文件于 第 5.2.1 节 “描述:control 文件”) 的简短文本档,描述原始软件包及包括的其他文件。由维护者签署,保证其真实性。详情见 第 6.6 节 “检查软件包真实性”

例 5.1. 一个.dsc 文件

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 3.0 (quilt)
Source: zim
Binary: zim
Architecture: all
Version: 0.73.5-1
Maintainer: Zim Package Maintainers <zim@packages.debian.org>
Uploaders: Raphaël Hertzog <hertzog@debian.org>
Homepage: https://zim-wiki.org
Standards-Version: 4.5.1
Vcs-Browser: https://salsa.debian.org/debian/zim
Vcs-Git: https://salsa.debian.org/debian/zim.git
Build-Depends: debhelper-compat (= 13), python3, python3-gi, python3-xdg, gir1.2-gtk-3.0, dh-python
Package-List:
 zim deb x11 optional arch=all
Checksums-Sha1:
 80d43d5c1c6a47c695079eb02bc8ad36b84d6e57 2159901 zim_0.73.5.orig.tar.gz
 b1cd86dc4819a80126efbf6ee6eba17a33f451d3 10124 zim_0.73.5-1.debian.tar.xz
Checksums-Sha256:
 a36f15d92c3994c0d55b07f83253b3d8b826beb3714865edbabc14f1cc91d63a 2159901 zim_0.73.5.orig.tar.gz
 6c2db642d9ac1c2440ed08e0cd584006045b342b255f37ffe42bd5459fb5cb76 10124 zim_0.73.5-1.debian.tar.xz
Files:
 fa76ceb8ac7d7354fb0e2bc5607e9faa 2159901 zim_0.73.5.orig.tar.gz
 a0c824d979efb196cde0176d3cb9c719 10124 zim_0.73.5-1.debian.tar.xz

-----BEGIN PGP SIGNATURE-----
Comment: Signed by Raphael Hertzog

iQEzBAEBCgAdFiEE1823g1EQnhJ1LsbSA4gdq+vCmrkFAmAa3ooACgkQA4gdq+vC
mrkq1gf/cs7irmbCSDrADVqsqYBrFJ1FyprE3jiHLNs0OQLryhFj9tzDuilX35VE
HkCfxSaKkzgvQLYtpuw1VBfhOdngTdHO39U6eljkaScnfLWU8Z5n/q+YeedxItoY
X3TtzMexFmb4WJqlylfjbXeqbLdYvsILQ3NVnE48AzkaBQlCC2d9bqecZhWiKfzq
gNxIDVDDhqCXMPe7QCErCBiFPUVpGN7b+6QWN0RxOTLZdj/slRD73rT++VmY+xN1
L8BSLcjXie+ES11MhQNYaLpCv2vqImlZaxkFWvsKBo9ndRFSbE3/RNK479a4KGve
KrdpGUJXy9uLPuAMyn5WphwXJ7OZXQ==
=YFDk
-----END PGP SIGNATURE-----
需要注意的是源码包也有依赖(Build-Depends),和那些二进制包依赖完全不同,因为它们需要设置编译软件所需工具的选项后,再来构建二进制包。
.orig.tar.gz 文件包括原开发者提供的源代码。要求 Debian 的软件包维护者不要修改它,以便检查原来的文件与集成后的文件 (比较校验码就知道) 并且尊重其他著者的意愿。
.debian.tar.xz 包含了 Debian 维护者做出的所有修改,特别是添加了 debian 目录,它包含了运行构建一个或多个 Debian 二进制软件包的指示。

5.3.2. Debian 中的使用

源码包是 Debian 一切的基础。所有 Debian 软件包都来自源码包,对 Debian 软件包的每一次修改都是对源码包修改的结果。Debian 的维护者们在使用源码包的同时,也知道他们的行为会对二进制包产生什么样的影响。因此,在 Debian 提供的源码包中可以找到他们的劳动成果:你可以很容易地回到源码包,一切都源于源码包。第 15 章 创建 Debian 软件包 包含一些例子。
当一个新版本的源码包到达 Debian 服务器时,它将被不同架构的机器网络用于在 Debian 支持的各种架构上进行编译。