20 个版本
0.3.3 | 2024年7月29日 |
---|---|
0.2.3 | 2024年7月23日 |
0.1.26 | 2024年2月26日 |
0.1.13 | 2023年1月25日 |
0.1.6 | 2022年10月20日 |
#88 在 构建实用工具 中
每月 631 次下载
300KB
3.5K SLoC
Andaman
Andaman 是一个用 Rust 编写的包构建工具链。它旨在简化构建各种类型的包。
它受到 umpkg
的启发,并旨在成为一个更现代、更灵活的替代品。它还考虑到了单一代码库,因此您可以在单个存储库中定义多个项目,使用多种包格式。
您可以在 Fyra Wiki 页面 和 Terra 开发者文档 中找到更多技术细节。
安装
在安装了 Terra 的系统上,您可以使用 sudo dnf5 in anda
(或 dnf)来安装它。
在安装了 Cargo 的系统上,您可以使用 cargo install anda
来安装它。
另外,您也可以从 GitHub 手动下载源代码
git clone https://github.com/FyraLabs/anda
cd anda
git checkout 0.1.18
cargo install --path .
工作原理
Andaman 简单来说是一个元构建系统,它调用其他构建系统来构建和分发包。它通过读取 anda.hcl
中的项目清单,然后调用适当的构建系统来构建包。
功能
- 构建 RPM
- 构建 Docker/Podman/OCI 镜像
- 构建 Flatpak 包
我们在 Fyra Labs 如何使用它
我们使用Andaman快速为我们的发行版构建软件包,包括蓝宝石Linux和TauOS。另一个显著的用途是Terra存储库,它为基于Fedora的发行版提供1000多个软件包。Andaman生成的工件随后发送到我们的组合和存储库管理器Subatomic。
历史
Andaman项目经历了许多形式。最初,我们将其编写为一个自定义的RPM前端,作为DNF的替代方案,类似于AUR助手。然而,由于rust和RPM支持存在问题,我们决定迁移到一个基于BuildKit的更通用的CI服务器。但这变成了项目的一个巨大功能蔓延,所以我们决定简单地编写一个构建系统,可以构建各种软件包格式的工件。
依赖
~34–49MB
~869K SLoC