Это старая версия документа.
Содержание
История дистрибутивов проекта PuppyRus после 2013 года
Положение дел на август 2013 года
В настоящее время команда разработчиков PuppyRus столкнулась с важными проблемами в дистрибутиве:
- Недостаточное для компиляции и обновления своего репозитория количество разработчиков
- Отсутствие своего пакетного менеджера с закачкой и контролем зависимостей. Невозможность использовать чужой из-за собственного формата пакетов .pfs Это создает трудности разработчикам при сборке дистрибутива и пользователям при установке софта.
Поиск решения
В результате обсуждений на форуме, проверки существующих сторонних репозитoриев, проведенных тестовых сборок систем на базе различных deb, rpm и и др. пакетов был выбран репозиторий Arch linux.
При работе над новым дистрибутивом ориентир будет взят на использовать лучшего из
- Arch (pacman)
- Puppy (cкрипты, модули)
- их производных: PuppyRus (pfs-utils) и AF (методика cборки).
3 источника и 3 составные части
-
- Общее: совместимые репозитории, systemd, Pacman_(система_управления_пакетами)
-
- Общее: frugal, DEVX, некоторые утилиты
- Отличия: initrd, софт модулями (не «все включено»), только русская версия, более свежий софт (из arch), свой менеджер модулей
-
- Общее: frugal, initrd, некоторые утилиты
- Отличия: построен на пакетах slackware
Остальное - собственные разработки : свои скрипты и программы, скомпиленные по своим рецептам
Преимущества использования репозитория Arch Linux
- Достаточно большой размер репозитария и современные версии программ
- Если отдельные пакеты не устраивают размером или зависимостями можно перекомпилировать и использовать свой дополнительный репориторий вплоть до полного перехода на свой репозиторий, как в Manjaro_Linux или ConnochaetOS
- Упрощение сборки дистрибутива и установки софта. Возможно обновление дистрибутива силами одного разработчика за час
- pacman не имеет единого файла (базы данных) списка установленных пакетов. Это позволяет удобно делить дистрибутив на модули
- Существует графическая оболочка к pacman - pacmanXG. Автор - участник нашего форума
- Наличие очень качественной wiki Arch Linux. Многие материалы уже переведены на русский язык
3 уровня использования PRA
По квалификации пользователя
- pacman - установка в сохраненку и создание модулей или FULL
Методика сборки PRA
Непонятные термины и сокращения - в нашей и arch wiki
Цель
- маленький и быстрый модульный фругал для дома.
- Оптимизирован для флэшек и copy2ram
- В мин. конфигурации пригоден для устаревшего железа
Реализация
- porteus-initrd (русифицирован и допилен) - оптимален для модульного фругала. Приглядываюсь к uird
- Компилим ядро по спец рецепту (определенные модули монолитно) - дает возможность не иметь в initrd модулей ядра.
- Средствами pacman, в chroot , на базе замороженного (ARollbackM) среза Arch репы собираем минимальную базу с Х. Можно часть (все) пакетов перекомпилить и использовать свои.
- Удаляем зависимости mesa и т.п. - (перекомпиляцией cairo). Будут отдельным модулем
- Скриптом trim удаляем маны и т.п. и отделяем dev часть. База пакетов (pkg) pacman /var/lib/pacman/local - разделяема. Каждый модуль у которого сохранена dev часть должен содержать свою часть pkg базы. Порезанные модули не имеют pkg информации и невидимы для ПМ. При использовании pacman * –force замещаются. Оптимально все портировать
- Свои скрипты - отдельным модулем 070 - собираются pfsmerge. Можно бы сделать pkg и собирать pacman-ом, но pfsmerge проще
Остальной софт собирается методом:
- Везде оптимизируются зависимости.
- Все портируется в /opt - чтобы либы не из среза арчрепы не сломали дистр в /lib .
- Портирование дает возможность менять срез арчрепы без переделки модулей и использовать их в др. дистрах
Из
- pacman2pfs - из арч репы.
- компиляция
- перепаровка чужих пакетов с портированием и(или) использованием либ из арчрепы
В итоге получаем
- ПМ Совместимость с использованным срезом арчрепы при любой комбинации модулей
- Независимость модулей софта друг от друга (если эти зависимости - только крупные типа qt mesa - не прописаны)
- Совместимость с AUR ABS при подключении dev модуля
Мы создали свой 1й уровень. На котором неподготовленному и (или) ленивому юзеру проще, чем юзеру full+ПМ. При этом 2,3 уровень не сломаны. Т.е. возможно все (если умеешь) Arch выбран не по политическим мотивам, а из-за ARM (морозить репу) и pacman (т.к. база пакетов без общих индексов)
На 1м уровне проще :
- Вместо установки и ПМ - копирование модулей
- Решение почти всех проблем перезагрузкой без сохраненки
На 2м уровне можно встроить в арч репу свою
Заплатить за «маленький и быстрый » пришлось урезанием функционала ненужного домашнему юзеру Ну так для других применений PRA и не планировался
По изложенной методе можно собирать дистр на любом доноре, но без заморозки репы и pacman будут проблемы с работоспособностью ПМ (раздувание сохраненки обновлениями репы). Можно решать регулярным обновлением базы
Март 2017 г. PRA Roll
- Пришло понимание, что оптимизация размера и портирование актуально только для определенных приложений и ситуаций (запуск с флэшки и т.п.)
- В итоге - прекращение поддержки PRA03middle, PRA03game, PRA64 и …
PRA-roll с глобальными изменениями:
- Сборка дистрибутива полностью из пакетов. Т.е. опакечивание своих наработок и поддержание собственного репозитория пакетов. Как следствие - упор на портированные модули теряет актуальность
- Новый initrd rootaufs2
- Как следствие - возможность полноценной FULL установки, упрощение сборки
Декабрь 2018 г. PRA6408
- Иллюзии что в одном дистре можно полноценно совместить фругал и фулл прошли
- PRA-Roll-1801 переименовываю в PRA6408 и позиционируется как фругал с длительной поддержкой.
- PRA-Roll-1811 будет впервые заточен под фулл
Ноябрь 2019 г. LF01
- Освоена сборка на репозитории debian : DDR01 i686
- Двойная сборка LF01 = LFA1801 (переименован PRA6408) + LFD10 (Debian 10) x86_64. Портированные модули подходят к обоим дистрибутивам
Заключение
PuppyRus остается дистрибутивом
- максимально компактным
- функциональным
- модульным
Добавляется совместимость с репозиториями больших linux и пакетный менеджер.
Текст подготовлен : sfs, Pro