PuppyRus-A на репозитории Arch Linux

Положение дел на август 2013 года

В настоящее время команда разработчиков PuppyRus столкнулась с важными проблемами в дистрибутиве:

  • Недостаточное для компиляции и обновления своего репозитория количество разработчиков
  • Отсутствие своего пакетного менеджера с закачкой и контролем зависимостей. Невозможность использовать чужой из-за собственного формата пакетов .pfs Это создает трудности разработчикам при сборке дистрибутива и пользователям при установке софта.

Поиск решения

В результате обсуждений на форуме, проверки существующих сторонних репозитoриев, проведенных тестовых сборок систем на базе различных deb, rpm и и др. пакетов был выбран репозиторий Arch linux.

При работе над новым дистрибутивом ориентир будет взят на использовать лучшего из

3 источника и 3 составные части

    • Общее: frugal, DEVX, некоторые утилиты
    • Отличия: initrd, софт модулями (не «все включено»), только русская версия, более свежий софт (из arch), свой менеджер модулей
    • Общее: frugal, initrd, некоторые утилиты
    • Отличия: построен на пакетах slackware

Остальное - собственные разработки : свои скрипты и программы, скомпиленные по своим рецептам

Преимущества использования репозитория Arch Linux

  • Достаточно большой размер репозитария и современные версии программ
  • Если отдельные пакеты не устраивают размером или зависимостями можно перекомпилировать и использовать свой дополнительный репориторий вплоть до полного перехода на свой репозиторий, как в Manjaro_Linux или ConnochaetOS
  • Упрощение сборки дистрибутива и установки софта. Возможно обновление дистрибутива силами одного разработчика за час
  • pacman не имеет единого файла (базы данных) списка установленных пакетов. Это позволяет удобно делить дистрибутив на модули
  • Существует графическая оболочка к pacman - pacmanXG. Автор - участник нашего форума
  • Наличие очень качественной wiki Arch Linux. Многие материалы уже переведены на русский язык

3 уровня использования PRA

По квалификации пользователя

  1. sfs-get подключение готовых модулей.pfs. Доступно каждому. Достаточно скопировать в /modules. В итоге каждый получает дистрибутив с тем софтом, который нравится ему
  2. pacman - установка в сохраненку и создание модулей

Подробности, обсуждение

Методика сборки PRA

Непонятные термины и сокращения - в нашей и arch wiki

Цель

  • маленький и быстрый модульный фругал для дома.
  • Оптимизирован для флэшек и copy2ram
  • В мин. конфигурации пригоден для устаревшего железа

Реализация

  1. porteus-initrd (русифицирован и допилен) - оптимален для модульного фругала. Приглядываюсь к uird
  2. Компилим ядро по спец рецепту (определенные модули монолитно) - дает возможность не иметь в initrd модулей ядра.
  3. Средствами pacman, в chroot , на базе замороженного (ARollbackM) среза Arch репы собираем минимальную базу с Х. Можно часть (все) пакетов перекомпилить и использовать свои.
  4. Удаляем зависимости mesa и т.п. - (перекомпиляцией cairo). Будут отдельным модулем
  5. Скриптом trim удаляем маны и т.п. и отделяем dev часть. База пакетов (pkg) pacman /var/lib/pacman/local - разделяема. Каждый модуль у которого сохранена dev часть должен содержать свою часть pkg базы. Порезанные модули не имеют pkg информации и невидимы для ПМ. При использовании pacman * –force замещаются. Оптимально все портировать
  6. Свои скрипты - отдельным модулем 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 установки, упрощение сборки

Планы

  • За счет упрощения сборки, планируется увеличение число разработчиков модулей софта , WM

Заключение

PuppyRus остается дистрибутивом

  • максимально компактным
  • функциональным
  • модульным
  • на ядре linux-pf
  • добавляется совместимость с репозиторием Arch linux и пакетный менеджер.

Текст подготовлен : sfs, Pro

Печать/экспорт