ALFA - автоматизированная система сборки пакетов программного обеспечения из руководства LFA. Она принимает на вход ряд конфигурационных файлов с описанием параметров сборки, а также ряд сборочных инструкций в формате TOML, после чего создаёт в системе отдельного пользователя, от имени которого начнёт сборку указанных пакетов ПО.
- Желание упростить и ускорить разработку руководства LFA: после каждого обновления хотя бы одного пакета требуется полная пересборка системы для того, чтобы убедиться в корректности сборочных инструкций для нового пакета.
- Упрощение разворачивания системы LFA на определённом оборудовании: от пользователя требуется только собрать загрузчик U-Boot и сгенерировать
img
-образ с системой.
Внимание: ALFA не может собрать вам полностью рабочую систему. Всё, на что она способна, по крайней мере на данный момент, - подготовить хост-систему к сборке и собрать только базовое программное обеспечение. С другой стороны, это по большей части ограничение не самой ALFA, а сборочных инструкций, идущих в комплекте с ней. Ничто не мешает пользователям дополнить их действиями по сборке загрузчика и img-образа для конкретного оборудования.
Работа программы разделена на 3 этапа:
- Настройка: на данном этапе создаётся файл
.config.toml
с информацией о собираемой системе (имя и версия собираемой ОС, путь до сборочных инструкций и ряд переменных окружения). - Создание профиля: на данном этапе создаётся файл
.profile.toml
, который содержит имя пользователя и путь до директории, в которой будет собрана ОС. Кроме того, после создания профиля, выполняются следующие действия: создание временного пользователя, от имени которого будет произведена сборка системы, создание необходимых файлов и каталогов, скачивание и проверка архивов исходного кода системы. - Сборка: сборка системы осуществляется от имени временного пользователя. Последовательно исполняются сгенерированные из TOML-инструкций скрипты с указанными действиями.
- ЯП: Rust, BASH
- Интерфейс: на данный момент консольный. Планируется добавление TUI и GUI
- Хост ОС: x86_64 Linux glibc
- Целевая ОС: ARM Linux musl
- Язык конфигурации: TOML
alfa config
sudo alfa profile
sudo alfa build
После сборки очистите систему:
alfa distcopy .
sudo alfa sysclean
ALFA распространяется под лицензией MIT.
Вы можете поддержать меня, создав issue, если у вас есть предложения или баг-репорты; отправив в репозиторий pull request, если у вас есть предложения по улучшению существующего функционала или исправлению ошибок, или отправив донат на карту:
2202206252335406 (Сбер; Михаил Сергеевич)
Донаты не только радуют сердце и греют душу, но и позволяют студенту-разработчику оплачивать интернет или покупать пельмени на ужин, а значит, позволяют продолжать разработку этого проекта.