让我们来验证一下,包mksh是否可以以可复制的方式构建。我在试着
apt build-dep mksh
apt source mksh
cd mksh; dpkg-buildpackage -uc -us
cd ..; sha256sum <freshly build dep>如果我现在做了
apt download mksh并将下载的deb的校验和与我在本地创建的debian包进行比较,校验和不同(因为我没有签署deb)。
如何使这些校验和匹配?
发布于 2021-10-14 04:43:40
这个mksh源包可重复构建,这意味着如果您能够再现给定的.deb包的构建环境,就可以重新创建它。该信息存储在在……里面.buildinfo文件中,在Debian快照的帮助下,可以检索用于构建给定.deb的所有包的确切版本。
目前,.buildinfo文件不与Debian存储库中的二进制包一起发布,但它们已经出版了 on buildinfos.debian.net,这有.buildinfo文件的版本的mksh目前在Debian 11 (例如这个amd64版本)。使用它,您可以确定给定的mksh二进制包的构建环境是什么,然后尝试再现它。
这里还有另一个微妙之处- Debian 11中的当前mksh包是一个binNMU,其源代码与发布的包源代码不完全匹配。要复制现有的二进制包,您必须包含具有相同内容的附加binNMU changelog (例如,amd64包中的changelog.Debian.amd64.gz ):
mksh (59c-9+b2) sid; urgency=low, binary-only=yes
* Binary-only non-maintainer upload for amd64; no source changes.
* Rebuild for outdated Built-Using
-- amd64 / i386 Build Daemon (x86-ubc-01) <buildd_amd64-x86-ubc-01@buildd.debian.org> Thu, 05 Aug 2021 11:52:19 +0000注意,如果您可以复制给定的构建环境,那么生成的.deb文件应该是完全相同的--在Debian中发布的二进制包不会自己签名,描述它们的元数据是。
发布于 2021-10-13 17:28:55
你不能。基础数据不同,因此计算的校验和将有所不同。找到具有相同校验和的值是一个困难的问题。
https://unix.stackexchange.com/questions/673090
复制相似问题