如何获取debian包的* .changes文件?

时间:2018-04-29 16:46:26

标签: debian apt deb dpkg

我知道我可以将Debian包源文件下载到当前目录:

$ apt-get source tree
...
$ ls -lahn
total 88K
drwx------  3 10335 11111 4,0K Apr 29 15:24 .
drwxrwxrwt 16     0     0  20K Apr 29 16:39 ..
drwxr-xr-x  5 10335 11111 4,0K Apr 29 15:24 tree-1.7.0
-rw-r--r--  1 10335 11111 5,9K Oct 25  2014 tree_1.7.0-3.debian.tar.xz
-rw-r--r--  1 10335 11111 1,8K Oct 25  2014 tree_1.7.0-3.dsc
-rw-r--r--  1 10335 11111  46K Apr 27  2014 tree_1.7.0.orig.tar.gz

我也知道*.dsc文件(通常)带有我可以检查的签名:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 3.0 (quilt)
Source: tree
Binary: tree
Architecture: any
Version: 1.7.0-3
Maintainer: Florian Ernst <florian@debian.org>
Homepage: http://mama.indstate.edu/users/ice/tree/
Standards-Version: 3.9.5
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/tree.git
Vcs-Git: git://anonscm.debian.org/collab-maint/tree.git
Build-Depends: debhelper (>= 8), dpkg-dev (>= 1.16.1~)
Package-List:
 tree deb utils optional arch=any
Checksums-Sha1:
 35bd212606e6c5d60f4d5062f4a59bb7b7b25949 47082 tree_1.7.0.orig.tar.gz
 d9c3f9d6882e6a26f2428db6528de2a1c9a620da 5944 tree_1.7.0-3.debian.tar.xz
Checksums-Sha256:
 6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12 47082 tree_1.7.0.orig.tar.gz
 1af303c6b9fc640c8346a6c21f45fa6275e7fa7df9f6656af16b504a1a261732 5944 tree_1.7.0-3.debian.tar.xz
Files:
 abe3e03e469c542d8e157cdd93f4d8a6 47082 tree_1.7.0.orig.tar.gz
 1bf74f9218c1b300de1246043b421173 5944 tree_1.7.0-3.debian.tar.xz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJULE31AAoJEAY3Qbr13R7OYnYQALFkasPqrvRt4lPYiROjkx50
3YfZ9yfnvAbsjhMkECl5ItWfQmNgpgObwTidV9JdJ8N70joaayRPDw7ACaBiOM9z
gA6ERv27hw7uoww1U7pu7J5WTLI2rH592BhU+qhnnrFs6mzFXc6SzuiV1oqEzbjP
dfP73v4lgIw6xPKdOo/l9oKY+tJXgEnspaZu/bnTkUbeV/p9xWmwE8ilGllMx7RA
YGQSq/Jn90mk7C2bfEH96kV0//ThTylCXiqNKafNDNeVYcRKJ1xbTentREMTr6vn
YxLR8e0mAz1hviAc2o+Ga+3zAzwgf+MZzdyAWWWNcH0K4r/UT4IYm7ajwFkaiPW8
+p+iHAVkABWicSKb51wIb2azmow1/PlSYzx1D5JZs8rh07rHC1zE2ni+zSxdtNFq
7yQ8k2WUKVzlJudXQBlZDSNbwHsetNVrceVPXF6xLrwxDf1+rUg0W7KLstKbjtlP
oqDuqzKhD6Mzl1YKMwraFIltlUt9DMZRwtmymjPIAsx56+/sPGv4PYqiPJpih6Gk
rw7fvYMU/dflUAxz13tFAY6qTCQR0DJ1HDiPD86/+/imwCVb9DAq2fJZZtF6W84T
xDipKYuYsVqXwXaWH1xlt7pSgKyoPJzUJt+M+8XDBXncn36M7aVpP57LjrHvDgNu
DVKPiaUlkR25A0/gqoQ1
=5N30
-----END PGP SIGNATURE-----

我知道软件包维护者可以debsign package build process期间生成的*.dsc和/或*.changes文件。

那么,*.changes文件在哪里?如何下载给定Debian软件包的*.changes文件?为什么apt-get source下载*.dsc文件而不是*.changes文件?

参考文献:

1 个答案:

答案 0 :(得分:1)

.changes 文件是“维护者”为上传准备的清单,它是否确实已签名,并且接受该上传的存档软件需要信任该维护者。但随后信任被转移到档案。维护者可能已经辞职,可能让他们的 OpenPGP 密钥过期或撤销,他们可能被驱逐等等。存档确保签署源和包存储库元索引,处理密钥轮换、到期等。< /p>

信任锚因此从维护者到存档,然后转移到存档,这样它就可以从存档到用户。如果您不信任存档,您甚至不应该尝试从中下载工件,因为它可能会在那里注入任何内容,包括对维护者正确签名但已过时且存在已知安全漏洞的软件包进行重放攻击,f.ex .

这就是为什么 apt 在下载 .dsc 之前确实对 Sources 元索引强制执行签名验证的主要原因,但是 dpkg-source 只对 .dsc 签名进行机会性(和非致命)验证。

如果出于某种原因您仍想获取 .changes 文件,至少对于 Debian 而言,可以从列表档案中获取这些文件(如 Giacomo Catenazzi 所述)。