Arch Linux 支持可复现的容器镜像构建

Arch Linux 发行版引入了可复现容器镜像构建机制,确保镜像中提供的二进制文件均基于提供的源代码构建,且不包含任何隐藏的修改。可复现的 Arch Linux 镜像托管在 Docker Hub 上,并带有“repro”标签。任何人都可以从源代码构建与项目最终发布的镜像完全相同的容器镜像,从而确保发行版的构建基础设施、编译器和构建工具不受任何损害。

在创建可重现的构建时,我们会考虑以下细微差别:精确的依赖项匹配;使用一致且版本一致的构建工具集;相同的默认选项和设置集;维护文件的构建顺序(使用相同的排序方法);以及禁用编译器添加易失性服务信息,例如随机值、文件路径引用以及构建日期和时间数据。构建工具中的错误和竞争条件也会影响构建的可重现性。

可复现镜像单独提供,因为为了确保完全可复现,它们不包含 pacman 包管理器的密钥。如果您需要在这些镜像中通过 pacman 更新或安装软件包,则必须运行命令重新创建密钥库(“pacman-key --init && pacman-key --populate archlinux”)。要验证您自己的构建是否与通过 Docker Hub 分发的镜像完全相同,您可以比较命令“podman inspect --format '{{.Digest}}”返回的哈希值。或者使用 diffoci 工具。

来源: opennet.ru