Каждая установка — маленькое расследование.
$ curl -LO source.tar.xz
$ sha256sum source.tar.xz
$ ./configure && make
$ sudo make install
# а какие файлы сейчас появились?
YOSI — это клиент-серверное приложение для Linux, которое автоматизирует путь от исходного кода до установленной программы.
Проект вырос из ручных сборок BLFS. Его задача — не заменить зрелый пакетный менеджер, а понять его работу и автоматизировать самую нудную часть.
Демонстрация целевого сценария
01 / Идея
Ручная сборка полезна, пока не приходится заново искать зависимости, вспоминать команды и выяснять, куда установились файлы. YOSI превращает эту последовательность в описанный и повторяемый процесс.
$ curl -LO source.tar.xz
$ sha256sum source.tar.xz
$ ./configure && make
$ sudo make install
# а какие файлы сейчас появились?
yosi install <package>Репозиторий хранит сведения об исходниках и рецепт сборки. Клиент читает их, выполняет шаги в заданном порядке и сохраняет результат установки.
Следить за реализацией этого сценария ↗02 / Устройство
Сервер просто раздаёт версионированные файлы через nginx. Вся интересная работа остаётся у клиента.
Получает метаданные, разбирает зависимости и ведёт процесс от исходного архива до списка установленных файлов.
/usr/bin/yosi
Статические index.json, manifest.toml и build.toml. Никакого отдельного тяжёлого backend.
repo.yosi-repo.ru/v1/
Источник, контрольная сумма, зависимости и команды сборки описываются отдельно от кода клиента.
manifest.toml + build.toml
Клиент сопоставляет зависимости и определяет порядок, в котором пакеты должны быть собраны.
packages → dependency graph
Результат сначала проверяется отдельно, а затем клиент записывает пакет и принадлежащие ему файлы в локальную базу.
staging → install database
Архитектура задаёт направление; текущее состояние каждого узла видно в GitHub ↗
03 / Сравнение
YOSI задуман как самостоятельный слой для пакетов из исходного кода: со своим репозиторием, рецептами и клиентом, без обязательной привязки к pacman или инфраструктуре конкретного дистрибутива.
Она может стать основой для небольшого или нового Linux-дистрибутива либо работать поверх уже установленной системы. Нужны только клиент и поддерживаемый набор рецептов — не чужая база пакетов и не чужой пакетный менеджер.
Это целевая граница проекта, а не обещание готового релиза. Реальный объём работающего кода всегда можно проверить в коммитах GitHub ↗.
04 / Код
Сайт объясняет идею и не пытается вести вечно устаревающий список готовности. Коммиты, README и Issues показывают текущее состояние без прикрас.
Здесь лежат реальный Go-клиент, документация и вся история проекта. Если сайт и код когда-нибудь расходятся — верить нужно коду.
05 / Infrastructure supervisor
Неофициальный маскот проекта, Chief Repository Officer и единственный сотрудник, которому разрешено спать во время production-инцидента.
Йося проверяет сборку перед переключением current symlink.
06 / Автор
В Linux он пришёл не самым прямым путём: поставил Kali ради инструментов, успел раздать chmod 777 системным каталогам, а потом был вынужден во всём разобраться, когда сгоревший блок питания оставил его со старым ноутбуком один на один. Дальше были Arch, Hyprland и собранный с нуля LFS.
Повторяющиеся сборки BLFS и дали идею YOSI. Сергей пока называет себя начинающим разработчиком, особенно в Go, зато уверенно работает с Linux, держит домашний Debian-сервер и предпочитает учиться на вещах, которыми действительно будет пользоваться.
Он учится в 10Г инженерного профиля ГБОУ Школы № 1411 в Москве — корпус 3, улица Декабристов, 1. YOSI — его личный проект, который он развивает и представляет как школьный. Помимо Linux и безопасности, Сергею интересны микроконтроллеры, английский и физика — особенно электростатика и электродинамика.