From Thin Air to Bootable Images: The Tine Build System
2 days ago
- tine 是一个基于 Buck2 的新型构建系统,用于构建具有加密可验证完整性的操作系统镜像。
- 它只需要 git、python3(用于自举)和用户命名空间,然后从固定声明中自举所有内容以实现可重现性。
- tine 使用 'boxes' 作为构建任务的声明式和固定环境,类似于容器,但与 Buck2 的缓存和重建功能集成。
- 它提供了构建 RPM、Go 和 Rust 项目、UKI 和镜像的规则,并支持通过 PKCS#11 或本地密钥进行签名。
- 该构建系统确保对输入的完全控制,固定每个软件组件,并支持多个上游发行版。
- 它提供低成本的全量重建、密封且逐位可重现的构建,以及支持并发的原生镜像构建。
- 一个演练演示了如何使用 Go 项目 (duf) 构建可启动的 Fedora Rawhide 镜像,并在 QEMU 中启动它。
- tine 通过 Syft 集成 SBOM 生成(例如 CycloneDX),以实现安全扫描兼容性。
- 它在评估了 mkosi、Open Build Service、BuildStream 和 Antlir 后开发,发现这些工具在灵活性、自举或最小主机要求方面存在不足。
- 底层引擎 Buck2 使用基于哈希的缓存来实现正确的增量构建,并支持共享缓存。