Различия
Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
puppyrus:pfs [2021/05/27 17:41] sfs [chroot2pfs: создание модуля.pfs из репозитория Arch на любом Linux с AUFS] |
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: | ||
- | ====== Стандарты названий модулей ====== | + | ===== Стандарты названий модулей ===== |
Для правильной работы автообновления, необходимо придерживаться стандарта: | Для правильной работы автообновления, необходимо придерживаться стандарта: | ||
Строка 61: | Строка 61: | ||
*sf09: собирал модуль разработчик sfs и это его 09 версия | *sf09: собирал модуль разработчик sfs и это его 09 версия | ||
- | ====== chroot2pfs: создание модуля.pfs из репозитория Arch на любом Linux с AUFS ====== | + | ===== chroot2pfs: создание модуля.pfs из репозитория Arch на любом Linux с AUFS ===== |
- | [[https://wiki.puppyrus.org/puppyrus/pr218/pfs4#chroot2pfs|chroot2pfs]] | + | [[https://wiki.puppyrus.org/puppyrus/pr218/pfs4#chroot2pfs|chroot2pfs]] создает свой корень системы из перечисленных модулей (каталогов) , делает chroot и при выходе сохраняет результат ваших действий |
chroot2pfs --mlist /путь/001...,/путь/030-qt5... --command bash | chroot2pfs --mlist /путь/001...,/путь/030-qt5... --command bash | ||
Строка 70: | Строка 70: | ||
pacman -Sy && pacman -S нужные_пакеты | pacman -Sy && pacman -S нужные_пакеты | ||
- | ====== pacman2pfs: создание модуля.pfs из репозитория Arch на загруженной системе ====== | + | ===== mk-dp: создание псевдопакета arch и ubuntu ===== |
- | Выкачивает из репозитория Arch пакеты с зависимостями и подготавливает для упаковки модуля. | + | |
+ | *Бывший 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|Форум]] | ||
Строка 80: | Строка 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 (иначе у других юзеров может не заработать; у них нет либ из Вашей сохраненки). | ||
Строка 97: | Строка 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 == |
Строка 115: | Строка 168: | ||
-Готовый рабочий модуль желательно [[setups/portable|портировать]] | -Готовый рабочий модуль желательно [[setups/portable|портировать]] | ||
- | ===Перекомпилить с оптимизацией ключей (ищите в AUR готовый).=== | + | ==Перекомпилить с оптимизацией ключей (ищите в AUR готовый).== |
Если модуль все равно большой - эта прога не для маленького дистрибутива | Если модуль все равно большой - эта прога не для маленького дистрибутива | ||
Строка 122: | Строка 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]] имя_или_описание_пакета. | ||
Строка 131: | Строка 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]] | ||
Строка 145: | Строка 198: | ||
pacman-arm полное_название_пакета_без_версии | pacman-arm полное_название_пакета_без_версии | ||
pacman-ha полное_название_пакета_без_версии | pacman-ha полное_название_пакета_без_версии | ||
- | ====== pkg2pfs: конвертация пакета в модуль ====== | + | ===== pkg2pfs: конвертация пакета в модуль ===== |
-//pkg2pfs /var/cache/pacman/pkg/пакет// - получаем каталог с содержимым пакета | -//pkg2pfs /var/cache/pacman/pkg/пакет// - получаем каталог с содержимым пакета | ||
Строка 151: | Строка 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 | ||
- | ===== Руками ===== | + | ==== Руками ==== |
-Сложить файлы будущего пакета в директорию | -Сложить файлы будущего пакета в директорию |