Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

puppyrus:pfs [2020/01/31 09:42]
127.0.0.1 внешнее изменение
puppyrus:pfs [2023/08/10 14:25] (текущий)
sfs [mkmod: создание модуля.pfs из пакетов ubuntu или arch на загруженной системе]
Строка 34: Строка 34:
   *[[http://forum.puppyrus.org/index.php?topic=20612.0|Пример]]   *[[http://forum.puppyrus.org/index.php?topic=20612.0|Пример]]
  
-====== Автообновление модулей PRA ======+===== Автообновление модулей  =====
 После загрузки системы, происходит [[http://forum.puppyrus.org/index.php?topic=17797.0|проверка актуальности версий загруженных модулей]] После загрузки системы, происходит [[http://forum.puppyrus.org/index.php?topic=17797.0|проверка актуальности версий загруженных модулей]]
   *Результаты выводятся на экран диалоговыми сообщениями системы   *Результаты выводятся на экран диалоговыми сообщениями системы
Строка 41: Строка 41:
  
  
-====== Стандарты названий модулей ======+===== Стандарты названий модулей =====
 Для правильной работы автообновления, необходимо придерживаться стандарта: Для правильной работы автообновления, необходимо придерживаться стандарта:
  
   *XXX-*.pfs : базовые модули. //X-// цифры по которым модули сортируются по слоям aufs (т.е. какой модуль перекрывает остальные). При загрузке из /optional и т.п. используйте [[http://forum.puppyrus.org/index.php/topic,14190.msg110846.html#msg110846|sort=]]   *XXX-*.pfs : базовые модули. //X-// цифры по которым модули сортируются по слоям aufs (т.е. какой модуль перекрывает остальные). При загрузке из /optional и т.п. используйте [[http://forum.puppyrus.org/index.php/topic,14190.msg110846.html#msg110846|sort=]]
   *Модуль начинается с заглавной буквы: составной модуль (можно [[puppyrus/pr218/pfs#pfsextract|разобрать pfsextract]])   *Модуль начинается с заглавной буквы: составной модуль (можно [[puppyrus/pr218/pfs#pfsextract|разобрать pfsextract]])
-  *-p- : [[http://wiki.puppyrus.org/setups/portable|портированный]] (в /usr/lib должно быть пусто)+  *-p- : [[http://wiki.puppyrus.org/setups/portable|портированный]] (в /usr/lib должно быть пусто - т.е. не сломает систему)
   *-yyXX : код сборщика модуля (yy-первые буквы ника) и ХХ (цифры) версия   *-yyXX : код сборщика модуля (yy-первые буквы ника) и ХХ (цифры) версия
   *_any _64 : архитектура. Если пусто - i686   *_any _64 : архитектура. Если пусто - i686
Строка 61: Строка 61:
   *sf09: собирал модуль разработчик sfs и это его 09 версия   *sf09: собирал модуль разработчик sfs и это его 09 версия
  
-====== pacman2pfs: создание модуля.pfs из репозитория Arch ====== +===== chroot2pfs: создание модуля.pfs из репозитория Arch на любом Linux с AUFS ===== 
-Выкачивает из репозитория Arch пакеты с зависимостями и подготавливает для упаковки модуля. +[[https://wiki.puppyrus.org/puppyrus/pr218/pfs4#chroot2pfs|chroot2pfs]] создает свой корень системы из перечисленных модулей (каталогов) , делает chroot и при выходе сохраняет результат ваших действий 
 +  chroot2pfs --mlist /путь/001...,/путь/030-qt5... --command bash 
 + 
 +Если вы собираете на загруженной системе (т.е. модули 001*.pfs и 030-qt5*.pfs являются слоями AUFS Вашей системы и уже подключены): 
 +  chroot2pfs -m "^\(001\|030-qt5\)-.*" --command bash 
 +...и далее  
 +  pacman -Sy && pacman -S нужные_пакеты 
 + 
 +===== mk-dp: создание псевдопакета arch и ubuntu ===== 
 + 
 +  *Бывший mk-dpkg  
 +  *В ubuntu-debian переносит /var/lib/dpkg/status в /var/lib/dpkg/_status/имя_модуля.stt удалив из него все не про этот модуль. Так удобнее для chroot2pfs (внутри сделать dpkg-fix) и апдейта части модулей (верхние модули не перекроют обновленные индексы обновленных пакетов).  
 +  *можно установить дистрибутив как FULL ([[https://forum.puppyrus.org/index.php?topic=15557.0|инсталлятором]]) и работать (удалять) с этими модулями как с пакетами. 
 +  *Для портированных модулей mk-dp создает псевдо (без зависимостей и т..п.) индексы для apt и pacman. [[http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/connman-gtk-p-1.1.1_64-sf02.pfs|Пример]] 
 +<code> 
 +# mk-dp 
 +Создание индексов apt и pacman модуля.pfs. Дает возможность удалить модуль, 
 +установленный распаковкой (unsquashfs -dest / модуль.pfs) модуля.pfs в корень FULL дистрибутива  
 +его стандартным пакетным менеджером (apt purge или pacman -R) 
 +Для apt нужно после распаковки дополнительно использовать dpkg-fix 
 +    Usage: /usr/local/bin/mk-dp [-1] [-l] [-a] [-p] dir  
 +        dir : директория с распакованным составным модулем.pfs , т.е. dir/mod1 dir/mod2 ... 
 +        -1  : директория с распакованным одиночным  модулем.pfs. Можно не указывать - автоопределится 
 +        -l  : показать устанновленные в систему такие модули.  
 +            apt    - группа portable.  
 +            pacman - группа mk-dp 
 +        -a  : создать только apt индексы 
 +        -p  : создать только pacman индексы 
 +        -r  : удалить */var/lib/dpkg и */var/lib/pacman 
 +</code> 
 + 
 +===== mkmod: создание модуля.pfs из пакетов ubuntu или arch на загруженной системе ===== 
 +  *Это обертка вокруг chroot2pfs. Использует уже  загруженные модули вашего дистрибутива 
 +  *Создание модуля.pfs из пакетов Arch или Debian на запущенном фругал дистрибутиве. 
 +  *Из уже загруженных модулей.pfs собирается новый корень (chroot2pfs) и поверх него создается модуль. 
 +  *Список использованных модулей выводится в начале 
 + 
 +    Usage:  ./mkmod пакет1 пакет2 ... 
 +    Usage:  ./mkmod [-m m1,m2] пакет1 пакет2 ... - где mx - части названий дополнительно подключаемых при сборке модулей 
 + 
 + 
 +  -mkmod имя_пакета.   
 +    *Точное название пакета искать :  
 +      *ubuntu : apt update && apt search имя_пакета или [[https://packages.ubuntu.com|здесь]] 
 +      *arch : pacman -Sys имя_пакета 
 +  -mkdp каталог_с_пакетами 
 +  -[[https://wiki.puppyrus.org/puppyrus/pr218/pfs4#mkpfs|mkpfs]] каталог_с_пакетами 
 +====== Утилиты для дистрибуnивов с apt (Debian, Ubuntu)======  
 +=====deb2pfs: конвертация пакета в модуль ====== 
 + 
 +  -//deb2pfs пакет.deb// - получаем каталог с содержимым пакета  
 +  -//mkpfs каталог// - .pfs из него. 
 + 
 +=====dpkg-fix===== 
 +  *apt хранит списки всех пакетов в одном файле /var/lib/dpkg/status - в LF дистрибутивах этот список делится на части. В каждом модуле только свой список пакетов /var/lib/dpkg/_status/название_модуля.stt 
 +  *dpkg-fix после объединения модулей.pfs в общий корень - собирает из *.stt /var/lib/dpkg/status 
 +=====dpkg-trim===== 
 +Создает из /var/lib/dpkg/status - /var/lib/dpkg/_status/название_модуля.stt 
 +====== Утилиты для дистрибуnивов с pacman (Arch, Mandjaro)======  
 + 
 +===== pacman2pfs: создание модуля.pfs из репозитория Arch на загруженной AUFS системе ===== 
 +  *Выкачивает из репозитория Arch пакеты с зависимостями и подготавливает для упаковки модуля.  
 +  *Если у Вас подключено много непортированных модулей - удобнее использовать chroot2pfs. Иначе при другом составе модулей в созданном модуле будет не хватать компонентов
  
 [[http://forum.puppyrus.org/index.php?topic=16490.msg138586#msg138586|Форум]] [[http://forum.puppyrus.org/index.php?topic=16490.msg138586#msg138586|Форум]]
Строка 71: Строка 133:
   *pacman2pfs -p : Установить все пакеты уже находящиеся в /var/cache/pacman/pkg/ в каталог с именем первого по алфавиту пакета   *pacman2pfs -p : Установить все пакеты уже находящиеся в /var/cache/pacman/pkg/ в каталог с именем первого по алфавиту пакета
   *pacman2pfs [-n] пакет [список пакетов]:  пропустить очистку кэш пакетов   *pacman2pfs [-n] пакет [список пакетов]:  пропустить очистку кэш пакетов
-===== Порядок сборки: =====+==== Порядок сборки: ====
   *С помощью [[/soft/sfs-get|sfs-get]] проверяем, что готового модуля нет   *С помощью [[/soft/sfs-get|sfs-get]] проверяем, что готового модуля нет
   *Отключаем devx, сохраненку и прочие модули не из iso (иначе у других юзеров может не заработать; у них нет либ из Вашей сохраненки).   *Отключаем devx, сохраненку и прочие модули не из iso (иначе у других юзеров может не заработать; у них нет либ из Вашей сохраненки).
Строка 88: Строка 150:
 <code>sudo mkpfs mc-4.8.1-1</code> <code>sudo mkpfs mc-4.8.1-1</code>
   *В итоге получаем готовый модуль.pfs, который можно подключать при автозагрузке или через [[/soft/sfs-get|sfs-get]]   *В итоге получаем готовый модуль.pfs, который можно подключать при автозагрузке или через [[/soft/sfs-get|sfs-get]]
-==== Варианты уменьшения размера модуля: ====+=== Варианты уменьшения размера модуля: ===
    
-=== pkg2pfs + dep-find ===+== pkg2pfs + dep-find ==
    
  
Строка 106: Строка 168:
   -Готовый рабочий модуль желательно [[setups/portable|портировать]]   -Готовый рабочий модуль желательно [[setups/portable|портировать]]
  
-===Перекомпилить с оптимизацией ключей (ищите в AUR готовый).===+==Перекомпилить с оптимизацией ключей (ищите в AUR готовый).==
 Если модуль все равно большой - эта прога не для маленького дистрибутива Если модуль все равно большой - эта прога не для маленького дистрибутива
  
Строка 113: Строка 175:
   sudo pacman -Sw пакет && sudo pkg2pfs /var/cache/pacman/pkg/пакет   sudo pacman -Sw пакет && sudo pkg2pfs /var/cache/pacman/pkg/пакет
      
-====== pacman2pfs: создание модуля.pfs из AUR ======+===== pacman2pfs: создание модуля.pfs из AUR =====
 [[https://wiki.archlinux.org/index.php/Arch_User_Repository_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|AUR]] [[https://wiki.archlinux.org/index.php/Arch_User_Repository_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29|AUR]]
   -[[http://wiki.puppyrus.org/setups/pacman#packer|packer]] имя_или_описание_пакета.    -[[http://wiki.puppyrus.org/setups/pacman#packer|packer]] имя_или_описание_пакета. 
Строка 122: Строка 184:
   -Далее как в предыдущем разделе   -Далее как в предыдущем разделе
      
-====== pacman-a : достать пакет из Historical Archive ====== +===== pacman-a : достать пакет из Historical Archive ===== 
   *Последнее время [[https://wiki.archlinux.org/index.php/Arch_Linux_Archive|ARM]] стали активно  [[http://forum.puppyrus.org/index.php?topic=21839.msg159409#msg159409|чистить переносом]] в [[https://wiki.archlinux.org/index.php/Arch_Linux_Archive#Historical_Archive|Historical Archive]].    *Последнее время [[https://wiki.archlinux.org/index.php/Arch_Linux_Archive|ARM]] стали активно  [[http://forum.puppyrus.org/index.php?topic=21839.msg159409#msg159409|чистить переносом]] в [[https://wiki.archlinux.org/index.php/Arch_Linux_Archive#Historical_Archive|Historical Archive]]. 
   *[[http://forum.puppyrus.org/index.php?topic=21839.msg159409#msg159409|pacman-a]]. Поддерживаются только ключи -S[wdd]  - см. [[https://wiki.archlinux.org/index.php/Pacman|pacman]]. Другие и не нужны. Надо только выкачать в /var/cache/pacman/pkg. Остальное сделает pacman   *[[http://forum.puppyrus.org/index.php?topic=21839.msg159409#msg159409|pacman-a]]. Поддерживаются только ключи -S[wdd]  - см. [[https://wiki.archlinux.org/index.php/Pacman|pacman]]. Другие и не нужны. Надо только выкачать в /var/cache/pacman/pkg. Остальное сделает pacman
   *Для сборки модуля из репозитория , перемещенного в HA - в скрипте pacman2pfs замените pacmcn на pacman-a   *Для сборки модуля из репозитория , перемещенного в HA - в скрипте pacman2pfs замените pacmcn на pacman-a
  
-====== pacman-arm pacman-ha: достать пакет нужной версии из ARM и Historical Archive ====== +===== pacman-arm pacman-ha: достать пакет нужной версии из ARM и Historical Archive ===== 
   *Консольный с меню на dialog   *Консольный с меню на dialog
   *Показывает все версии пакетов в [[https://wiki.archlinux.org/index.php/Arch_Linux_Archive|ARM]]   *Показывает все версии пакетов в [[https://wiki.archlinux.org/index.php/Arch_Linux_Archive|ARM]]
Строка 136: Строка 198:
   pacman-arm полное_название_пакета_без_версии   pacman-arm полное_название_пакета_без_версии
   pacman-ha  полное_название_пакета_без_версии   pacman-ha  полное_название_пакета_без_версии
-====== pkg2pfs: конвертация пакета в модуль ======+===== pkg2pfs: конвертация пакета в модуль =====
  
   -//pkg2pfs /var/cache/pacman/pkg/пакет//  - получаем каталог с содержимым пакета    -//pkg2pfs /var/cache/pacman/pkg/пакет//  - получаем каталог с содержимым пакета 
Строка 142: Строка 204:
  
  
-====== pfspkg: названия пакетов, содержащихся в модуле.pfs ======+===== pfspkg: названия пакетов, содержащихся в модуле.pfs =====
 Удобно использовать для пересоздания модуля:  Удобно использовать для пересоздания модуля: 
   pacman2pfs `pfspkg module.pfs`   pacman2pfs `pfspkg module.pfs`
 -r - удалит информацию (но не содердимое) о пакете в /var/lib/pacman/local. Удобно, например для сборки другой DE. Используйте ТОЛЬКО при FRUGAL с RO сохраненкой или [[http://wiki.puppyrus.org/soft/arch-initrd-rootaufs2?&#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8_%D0%B4%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D0%B0|FULL в.4]], не обновляя сохраненку -r - удалит информацию (но не содердимое) о пакете в /var/lib/pacman/local. Удобно, например для сборки другой DE. Используйте ТОЛЬКО при FRUGAL с RO сохраненкой или [[http://wiki.puppyrus.org/soft/arch-initrd-rootaufs2?&#%D0%B2%D0%B0%D1%80%D0%B8%D0%B0%D0%BD%D1%82%D1%8B_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8_%D0%B4%D0%B8%D1%81%D1%82%D1%80%D0%B8%D0%B1%D1%83%D1%82%D0%B8%D0%B2%D0%B0|FULL в.4]], не обновляя сохраненку
-====== Редактирование (пересборка) пакета ====== +===== Редактирование (пересборка) пакета ===== 
-===== Распаковать: =====+==== Распаковать: ====
  
   mkdir tmp && cd tmp && tar -xf ../пакет.pkg.tar.xz   mkdir tmp && cd tmp && tar -xf ../пакет.pkg.tar.xz
 Или в mc : F2 - Распаковать tar Или в mc : F2 - Распаковать tar
  
-===== dir2pkg - запаковать: =====+==== dir2pkg - запаковать: ====
   dir2pkg tmp   dir2pkg tmp
 Или в mc : нажать на файл .PKGINFO Или в mc : нажать на файл .PKGINFO
  
-======Создание пакета======+=====Создание пакета=====
 [[https://wiki.archlinux.org/index.php/Creating_packages_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)|Подробности]] [[https://wiki.archlinux.org/index.php/Creating_packages_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)|Подробности]]
-===== Стандартный способ (AUR ABS) =====+==== Стандартный способ (AUR ABS) ====
   -подключить [[puppyrus/pra-roll#%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_pra-roll|DEVX]]   -подключить [[puppyrus/pra-roll#%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8_pra-roll|DEVX]]
   -AUR : packer пакет   -AUR : packer пакет
   -ABS: asp export пакет + makepkg   -ABS: asp export пакет + makepkg
  
-===== Руками =====+==== Руками ====
  
   -Сложить файлы будущего пакета в директорию    -Сложить файлы будущего пакета в директорию 
Печать/экспорт