Vostok Linux: я собрал свой дистрибутив на базе Void Linux — и вот что из этого вышло

Привет, Хабр. Меня зовут Давид и это мой первый опыт, и совсем недавно я начал делать то, о чём многие линуксоиды мечтают но никогда не начинают — собирать собственный дистрибутив. Не форк Ubuntu с другими обоями, а полноценный проект на базе Void Linux с собственным репозиторием, установщиком, сайтом и философией.
Это статья о том, почему я выбрал именно Void, что такое runit и почему без systemd можно жить на десктопе, как устроен XBPS и как я всё это объединил в нечто работающее. А ещё — честно о сложностях, которые возникают когда делаешь всё один.
С чего всё началось
Наверно, я не типичный линуксоид, который начинал с Linux Mint или Ubuntu, мой первый дистрибутив был Arch Linux, без archinstall, все сам и ручками, по канону как говорится. До сих пор считаю, его одним из лучших в своем роде, но не всем он подходит из-за сложности, да для нас, кто ставит его за 10 минут, это легко, но обычному пользователю это не нужно, так появились Manjaro, CachyOS, EndeavourOs они упрощали установку, помогали людям сделать Arch более понятным, что собственно получилось, мы видим насколько они стали популярны. Далее не помню как именно, но я наткнулся на Void Linux, хотя нет, помню конечно, в моем состояние "дистрохоппинга" думаю многим это знакомо, я поставил себе "пустоту" между делом пробуя от Ubuntu до Gentoo меня хватало на недолго, вот я кастомизирую fetch, где есть чудесная строка "этой системе 0 дней" и я думал, вот через полгода, год я смогу похвастаться, что излечился и сделать скриншот с долгожданным фетчем, но увы, там было максимум неделя, две и в некоторых случаях даже 0 не превращался в 1. И вот, я поставил Void Linux, до этого я понимал, что очень популярный в узких кругах, что на distrowatch он был на 1 месте продолжительное время, и что тут нет systemd, по сути все. Он мне очень понравился и в нем я обрел свое успокоение. Натыкаясь на обзоры Void, слышал, да он прекрасный, но в нем мало пакетов, но в нем сложно разобраться и все в таком духе. Меня посетила мысль, а что если я создам форк именно Void, и постараюсь закрыть все эти "недостатки", которые конечно, не являются таковыми. Постараюсь создать репозиторий и наполнить его дополнительными пакетами, что если я попробую сделать нормальный установщик, который к слову, пока в процессе разработки. И сделать, так, чтоб все ставилось из коробки? Чтоб после установки, ничего не нужно было делать, установил, зашел и наслаждаешься системой, не похожей на другие, а самое главное, полностью независимую ни от кого, ни от политической ситуации в мире, что никто не отключит вам репозиторий, где бы вы не находились, что какие-то пакеты не смогут установится или обновляться система в целом, так появился Vostok Linux.
Почему Void Linux как основа
Void — независимый дистрибутив. Не производная Debian, не ответвление Ubuntu. Написан с нуля. Это важно по нескольким причинам:
Нет systemd. Void использует runit — один из самых минималистичных init-систем. ~7000 строк кода против 1.4 миллиона в systemd. Каждый сервис — это просто директория с shell-скриптом run. Прозрачно, предсказуемо, никакой магии.
XBPS. Свой пакетный менеджер написанный командой Void. Быстрый, атомарный, с проверкой библиотечных зависимостей до установки. Пакет не поставится если он сломает другие — это редкость среди пакетных менеджеров.
Rolling release. Система всегда актуальна. Нет версий "Ubuntu 22.04" → "Ubuntu 24.04" с ломающими миграциями. Одна команда и ты на последних пакетах. Не думайте, что мне не нравятся другие дистрибутивы, они все по своему прекрасны, но некоторые из них становятся Энтерпрайз все больше и больше.
runit: init-система которую не боишься
Когда я показываю людям как включить сервис в Void, они удивляются насколько это просто:
# Включить сервис (запускать при каждой загрузке)
sudo ln -s /etc/sv/NetworkManager /var/service/
# Выключить сервис
sudo rm /var/service/NetworkManager
# Статус
sudo sv status NetworkManagerВсё. Никаких unit-файлов, никакого systemctl daemon-reload. Симлинк есть — сервис запущен. Симлинка нет — не запущен.
Структура предельно простая:
/etc/sv/ ← все доступные сервисы
/var/service/ ← симлинки = активные сервисыКаждый сервис — директория с файлом run:
#!/bin/sh
exec /usr/bin/NetworkManager --no-daemonВот и весь сервис. runit запустит его, будет следить за ним и перезапустит если упадёт.
Что такое Vostok Linux
Vostok — это Void Linux с:
Преднастроенным KDE Plasma 6 из коробки
Кастомизированный установщик, над собственным работаю (
vostok-installer)Собственным репозиторием с пакетами которых нет в официальном Void
Всеми нужными сервисами включёнными сразу после установки
Поддержкой Wayland по умолчанию
NVIDIA Edition с проприетарными драйверами
Ключевая философия: минимализм без аскетизма. Система минимальная — но всё что нужно для работы уже есть и работает. Никакого bloatware, никакой навязанной эстетики. Вы получаете рабочий стол и свободу.

Почему KDE Plasma
Выбор рабочего стола для дистрибутива без systemd — нетривиальная задача. GNOME де-факто требует systemd для многих функций. Даже Artix, официально отказался от Gnome, KDE Plasma работает без него — у неё минимум жёстких зависимостей от systemd.
Плюс KDE:
Наибольшая свобода кастомизации среди всех DE
Нативный Wayland на уровне который у GNOME был недавно
Полный набор родных приложений (Dolphin, Konsole, Spectacle)
Знакомый интерфейс для пользователей Windows
Из коробки в Vostok идёт минимальная KDE Plasma — без лишних виджетов, без тем, без предустановленных игр и офисных пакетов. Пустой чистый стол. Дальше каждый строит под себя.
Собственный репозиторий
Один из главных болей Void Linux — отсутствие части популярного ПО в официальном репозитории. Политика Void довольно строгая, и некоторые программы туда просто не принимают.
Я создал собственный репозиторий. Он подключён по умолчанию и стоит первым в списке — XBPS проверяет его раньше официального Void. Видно, какие пакеты есть, работает поиск и справа подсказка как установить. Да, сейчас пакетов немного, но я только закончил сайт, сейчас займусь поддержкой репозитория и постараюсь добавить много интересных утилит. Если вы разработчик и хотите, чтоб ваша утилита попала в репозиторий Vostok, пишите мне, обязательно попробуем, что нибудь придумать.

Все пакеты подписаны — XBPS верифицирует подпись автоматически перед установкой.
Что работает прямо сейчас
ISO образы для x86_64 (стандартная и NVIDIA редакции)
Работающий установщик с поддержкой UEFI и Legacy BIOS
KDE Plasma 6.6.1 с Wayland по умолчанию
Все базовые сервисы включены из коробки (NetworkManager, bluetoothd, PipeWire, SDDM)
Собственный репозиторий с подписанными пакетами
Сайт с документацией на русском и английском
Сейчас я обдумываю, над Niri это мой любимый Wayland оконник, чтоб после установки, все работало из коробки, кстати Niri есть в официальном репозитории Void.
Сложности
Делать дистрибутив в одиночку — это не быстро. Вот несколько вещей которые оказались сложнее чем я думал:
PipeWire на Void без systemd. В большинстве дистрибутивов PipeWire запускается через systemd user sessions. На Void с runit это нужно настраивать иначе. Я написал скрипт который делает это автоматически при установке — теперь звук работает из коробки. Но путь к этому был нетривиальным.
NVIDIA на Wayland. Ситуация улучшилась, но всё ещё требует специфической конфигурации. NVIDIA Edition существует именно потому что для NVIDIA нужна отдельная настройка которую не стоит пихать в стандартный образ.
Пакетирование для XBPS. Формат пакетов Void (xbps-src) сильно отличается от deb и rpm. Кривая обучения есть, но зато результат — нативные пакеты без прослоек. Например создавая steam-bin я сразу добавил все 32 библиотеки, чтоб все работало сразу из коробки.
Планы
Графический установщик (работа идёт)
Niri edition — тайловый Wayland compositor
Больше пакетов в репозитории по запросам сообщества
ARM поддержка (Raspberry Pi, Apple Silicon через Asahi)
Так же, надеюсь найдется человек который сможет сделать красивый fetch для логотипа
Попробовать
ISO можно скачать прямо с сайта. Установщик текстовый — но документация подробная, с скриншотами каждого шага. Но, после вы получите рабочую систему из коробки. Абсолютно бесплатную и только вашу)
Да, работа будет идти и дальше. Да, не всё сразу, да, будет сложно, но я верю, что найдутся энтузиасты, которые захотят сделать Vostok Linux ещё лучше и круче. Спасибо, что вытерпели мой трёп и почитали) Всем добра!
P.S. Надеюсь, у нас всё получится и проект станет особенным. Если кому-то захочется поддержать — можете нажать на Recommend, но только если у вас откликается эта идея. Спасибо ещё раз!
