Skip to content

Linux-for-ARM/alfa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automated Linux for ARM (ALFA)

ALFA - автоматизированная система сборки пакетов программного обеспечения из руководства LFA. Она принимает на вход ряд конфигурационных файлов с описанием параметров сборки, а также ряд сборочных инструкций в формате TOML, после чего создаёт в системе отдельного пользователя, от имени которого начнёт сборку указанных пакетов ПО.

Мотивация

  • Желание упростить и ускорить разработку руководства LFA: после каждого обновления хотя бы одного пакета требуется полная пересборка системы для того, чтобы убедиться в корректности сборочных инструкций для нового пакета.
  • Упрощение разворачивания системы LFA на определённом оборудовании: от пользователя требуется только собрать загрузчик U-Boot и сгенерировать img-образ с системой.

Внимание: ALFA не может собрать вам полностью рабочую систему. Всё, на что она способна, по крайней мере на данный момент, - подготовить хост-систему к сборке и собрать только базовое программное обеспечение. С другой стороны, это по большей части ограничение не самой ALFA, а сборочных инструкций, идущих в комплекте с ней. Ничто не мешает пользователям дополнить их действиями по сборке загрузчика и img-образа для конкретного оборудования.

Принцип работы

Работа программы разделена на 3 этапа:

  1. Настройка: на данном этапе создаётся файл .config.toml с информацией о собираемой системе (имя и версия собираемой ОС, путь до сборочных инструкций и ряд переменных окружения).
  2. Создание профиля: на данном этапе создаётся файл .profile.toml, который содержит имя пользователя и путь до директории, в которой будет собрана ОС. Кроме того, после создания профиля, выполняются следующие действия: создание временного пользователя, от имени которого будет произведена сборка системы, создание необходимых файлов и каталогов, скачивание и проверка архивов исходного кода системы.
  3. Сборка: сборка системы осуществляется от имени временного пользователя. Последовательно исполняются сгенерированные из 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 (Сбер; Михаил Сергеевич)

Донаты не только радуют сердце и греют душу, но и позволяют студенту-разработчику оплачивать интернет или покупать пельмени на ужин, а значит, позволяют продолжать разработку этого проекта.

About

Automated Linux for ARM

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages