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

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

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

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

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

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

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

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

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

Методика сборки 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 будут проблемы с работоспособностью ПМ (раздувание сохраненки обновлениями репы). Можно решать регулярным перевыпуском базы

Планы

  • Совместно с разработчиками MagOs предполагается участие в создании универсальной структуры загрузки системы с различных локальных устройств, сетевых серверов и облачных сетей.
  • За счет упрощения сборки, планируется увеличение число разработчиков модулей софта , WM

Заключение

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

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

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

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