首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证给定的包是否以可复制的方式作为最终用户构建?

如何验证给定的包是否以可复制的方式作为最终用户构建?
EN

Unix & Linux用户
提问于 2021-10-13 16:29:17
回答 2查看 102关注 0票数 2

让我们来验证一下,包mksh是否可以以可复制的方式构建。我在试着

代码语言:javascript
复制
apt build-dep mksh
apt source mksh
cd mksh; dpkg-buildpackage -uc -us
cd ..; sha256sum <freshly build dep>

如果我现在做了

代码语言:javascript
复制
apt download mksh

并将下载的deb的校验和与我在本地创建的debian包进行比较,校验和不同(因为我没有签署deb)。

如何使这些校验和匹配?

EN

回答 2

Unix & Linux用户

发布于 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 ):

代码语言:javascript
复制
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中发布的二进制包不会自己签名,描述它们的元数据是

票数 4
EN

Unix & Linux用户

发布于 2021-10-13 17:28:55

你不能。基础数据不同,因此计算的校验和将有所不同。找到具有相同校验和的值是一个困难的问题。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/673090

复制
相关文章

相似问题

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