Форум проекта PuppyRus Linux

Разработки проекта PuppyRus => Разработка PFS и Initrd => Разработка PFS-utils v.4 (только для разработчиков) => Тема начата: betcher от 08 Ноябрь 2018, 11:33:40

Название: chroot2pfs
Отправлено: betcher от 08 Ноябрь 2018, 11:33:40
https://github.com/pfs-utils/pfs-utils-cli/blob/v4/project-files/usr/bin/chroot2pfs
https://github.com/pfs-utils/pfs-utils-cli/blob/v4/project-files/usr/bin/aufs-n
Есть идея. Предлагаю обмозговать.
Вот так приблизительно может выполняться.
Код
chroot2pfs -f -o nano.xzm --command urpmi nano              пакет в модуль в росе   # работает
chroot2pfs -f -o nano --command urpmi nano       пакет в каталог
chroot2pfs -f -o nano.pfs --command pacman -S nano      пакет в модуль в PRA     # работает
chroot2pfs -o module.xzm --command urpmi nano && ln -s  /usr/bin/nano /bin/nano # не проверено
chroot2pfs -o users.xzm --command  adduser www_data                                                # не проверено
chroo2pfs -o module.xzm --script ./install_my_soft.sh                                                        # работает
chroot2pfs -o nano.xzm --command urpmi nano && rm -rf /var/lib/rpm                           # не проверено
сhroot2pfs -o nano.xzm -m "^[1-4].*"--command urpmi nano                                            # работает
сhroot2pfs -o nano.xzm ---command XFdrake  (создает конфиги иксов)                    # работает

То есть создаем chroot из модулей, выполняем команды, пакуем изменения.
Пока только идея ни буквы кода :)

Добавил обработку параметров --script и --mask.
Код
./chroot2pfs -o nano.xzm -m "^[1-4].*"--command urpmi nano
подключит в чрут только те из модулей, названия которых  начинаются на 1, 2, 3 или 4, выполнит в чруте urpmi nano и соберет модуль из изменений с именем nano.xzm
Создаем файл ./nano.sh, с таким содержимым
#!/bin/bash
urpmi nano

./chroot2pfs -o nano.xzm --script ./nano.sh
подключит в чрут все модули что подключены в основной системе (так как маски нет), перенесет в чрут файл ./nano.sh (в /var/lib/chroot2pfs/nano/), сделает его исполняемым, выполнит скрипт в чруте и соберет модуль nano.xzm

При наличии systemd используется виртуализация с systemd-nspawn, чтоб принудительно включить chroot используем ключ -c chroot
Ключ --mkscript создаем в текущем каталоге скрипт-шаблон для использование со --script

без -o спросит имя, впишете без расширения будет папка
Название: Re: chroot2pfs
Отправлено: sfs от 08 Ноябрь 2018, 12:15:10
chroot2pfs
У меня есть pacman2pfs и chroot.sh - если я правильно понял - предлагается этот же функционал, но в более удобном виде
chroot2pfs -o users.xzm --command 'adduser www_data'
Не понял - если users.xzm - не корень дистра - как так можно....
Или users.xzm aufs-ится в работающий корень и изменения попадут в users.xzm ?
Название: Re: chroot2pfs
Отправлено: betcher от 08 Ноябрь 2018, 12:28:35
е понял - если users.xzm - не корень дистра - как так можно....
Может именно так и не выйдет просто идеи набрасывл.
Вообще задумка в некотором смысле замена epm2pfs, о котором уже не вспоминаем.
Название: Re: chroot2pfs
Отправлено: sfs от 08 Ноябрь 2018, 12:32:50
users.xzm aufs-ится в работающий корень и изменения попадут в users.xzm
Такое было бы интересно, но вряд ли реализуемо
И польза от этого будет только а арче (где в базе ПМ нет индексных файлов)
В прочих дистрах - усли сунуть такой модуль в середину ауфс - сломается база ПМ
Название: Re: chroot2pfs
Отправлено: betcher от 08 Ноябрь 2018, 12:42:35
Мы в большинстве случаев в пользовательских модулях базу попросту удаляем. Здесь ключик под это действие не прикрутить, у каждого ПМ свои базы, но как-то так можно я думаю.
chroot2pfs -o nano.xzm --command 'urpmi nano && rm -rf /var/lib/rpm && rm -rf /var/lib/urpmi'
Название: Re: chroot2pfs
Отправлено: betcher от 09 Ноябрь 2018, 19:54:30
Сделал прототип. Лежит в v4. В ПРА совсем не проверял еще, в магос работает.
chroot2pfs -o nano.xzm --command urpmi nano   - (собирает модуль c nano  в магос)
У вас будет наверное так:
chroot2pfs -o nano.pfs --command pacman -S  nano
Но что сработает не гарантирую, надо проверять.
Еще одна фишка. Перенес из нашего urpm2pfs
chroot2pfs nano.pfs - пересоберет поновой модуль из репы по сохраненным внутри модуля параметрам -o nano.pfs --command pacman -S  nano
Задолбался вспоминать как модули были собраны чтоб пересобрать с обновлениями и запилил такую штуку. У нас даже с локальными rpm работает,  но тут сложнее с этим.
Название: Re: chroot2pfs
Отправлено: krasnyh от 09 Ноябрь 2018, 20:14:32
chroot2pfs -o nano.pfs --command pacman -S  nano
Правильно ли я понимаю, что можно будет разморозить репу в фругале, а потом пересобрать все модули с chroot2pfs. Если так, то приветствую обоими руками. Фругал меня устраивает полностью, но и новое ПО хочется, время от времени. :)

P.s. Готов даже тестировать.
Название: Re: chroot2pfs
Отправлено: betcher от 09 Ноябрь 2018, 20:41:04
Тестить конечно надо, но если особо опыта нет лучше дождитесь когда мы с Sfs хотябы заведем это в ПРА.
Про заморозки/разморозки я не особо в теме. Утилита приблизительный аналог pacman2pfs (не помню точно как называется у вас), но со своими фишечками. Пересоьираемые модули одна из них.
Вот собрали вы модуль, он у вас работает через какое то количество обновлений системы он работать перестает, либы сменились или еще чего. Вы просто берете и запускаете chroot2pfs модуль.pfs и все.
Ничего фантастического тут нет просто в модуле хранятся параметры с коьорыми вы запускали chroot2pfs при сборке.
Название: Re: chroot2pfs
Отправлено: sfs от 10 Ноябрь 2018, 10:21:32
chroot2pfs -o nano.pfs --command pacman -S  nano
Не работает. initvar уже есть в pfs - зачем продублировано?
Если я правильно разобрал код :
1. модуль распаковывается
2. монтируется в свой aufs
3. chroot в него
Или проглядел где туда же корень или еще что-то монтируется или не понятно, откуда в этом чруте возьмется ПМ

В ПРА в каждом непортированном модуле хранится список пакетов. Поэтому пересобрать просто : pacman2pfs `pfspkg старый.pfs`
Если и у Вас так же - не понимаю зачем чрут. Просто собрать новый модуль по списку пакетов старого
Название: Re: chroot2pfs
Отправлено: betcher от 10 Ноябрь 2018, 10:52:43
Собирается новая ауфс из точек монтирования сквошей системных модулей. Сейчас из всех, после будет маска. Создаются /proc, /dev, /tmp и тд. в новой ауфс. Теперь чрутимся туда и выполняем то , что после --command ( не обязательно установка пакетов, что угодно). После размонтируем все и mkpfs  для changes от новой ауфс. Далее  delaufs. Все.
В дальнейшем кроме --command будет еще --script чтоб много комманд выполнить.
Название: Re: chroot2pfs
Отправлено: sfs от 10 Ноябрь 2018, 11:12:58
Собирается новая ауфс из точек монтирования сквошей системных модулей.
Если бы в итоге можно было обновить все модули - какой-то смысл есть. Но нельзя, т.к. change - один на все
Если базовые содержут старые пакеты, а обновляемый модуль получится свежее - он может не работать...
Не догоняю практического смысла. Зачем эти усложнеия
не понимаю зачем чрут. Просто собрать новый модуль по списку пакетов старого
Название: Re: chroot2pfs
Отправлено: betcher от 10 Ноябрь 2018, 11:19:58
Чрут, чтоб переложить управление зависимостями на штатный ПМ. И не привязывайтесь именно к обновлениям, в   pfs-utils нет утилиты для сборки модуля из пакетов типа urpm2xzm, pacman2pfs так вот это она :)
Название: Re: chroot2pfs
Отправлено: sfs от 10 Ноябрь 2018, 11:27:29
Т.е. система загружена с кучей небазовых модулей
Если собрать модуль из пакетов в такой - на другом комплекте модулей может не работать
А так мы собираем в чруте из ТОЛЬКО базовых модулей
Тогда идея понятна и интересна
Название: Re: chroot2pfs
Отправлено: sfs от 10 Ноябрь 2018, 11:33:25
С pfs v3 должно работать?
Название: Re: chroot2pfs
Отправлено: betcher от 10 Ноябрь 2018, 11:36:31
мы собираем модули в чруте по маске, правда пока это не делал.   * или ??-* или [0-3]* или еще как. Надо только решить по  умолчаеию как. *  наверное.
Название: Re: chroot2pfs
Отправлено: betcher от 10 Ноябрь 2018, 21:16:12
Добавил обработку параметров --script и --mask.
./chroot2pfs -o nano.xzm -m "^[1-4].*"--command urpmi nano
подключит в чрут только те из модулей, названия которых  начинаются на 1, 2, 3 или 4, выполнит в чруте urpmi nano и соберет модуль из изменений с именем nano.xzm
Создаем файл ./nano.sh, с таким содержимым
#!/bin/bash
urpmi nano

./chroot2pfs -o nano.xzm --script ./nano.sh
подключит в чрут все модули что подключены в основной системе (так как маски нет), перенесет в чрут файл ./nano.sh (в /var/lib/chroot2pfs/nano/), сделает его исполняемым, выполнит скрипт в чруте и соберет модуль nano.xzm

Вроде как и пересборка работает и с --command и co --script.

В PRA не проверял пока, но убрал кое что из-за чего могло не работать. Смотрите.

З.Ы. Надо наверное еще прикрутить копирование произвольных файлов из системы в чрут, -f для mkpfs, может ключ,чтоб модуль сразу pfsload. Есть еще идеи?
З.З.Ы Повтрю, что использовать можно не только для установки пакетов, можно вообще что угодно запускать. Например пробовал так
./chroot2pfs --command XFdrake
XFdrake - это мандривовский конфигуратор для иксов, если иксы не подняты (в чруте ж мы)  запускается в консольном режиме. Все сработало, конфиги создал и все они попали в модуль.
 



Название: Re: chroot2pfs
Отправлено: betcher от 11 Ноябрь 2018, 20:08:58
Пробовал в пра. Если коротко то не сработало. Модуль создается, но в нем нет установленного пакета, есть только сам пакет в кэше pacman и служебные файлы от chroot2pfs. Мне кажется это какие то тонкости пакмана. Например при pacman -S palemoon в системе скачивается и устанавливается один пакет -  palemoon, а если эту же команду передать chroot2pfs, то требуется уже два пакета,  palemoon скачивается, а gtk2 нет, какая то ошибка. Попробуйте Вам с пакманом проще разобраться.
chroot2pfs -o palemoon.pfs --command pacman -S palemoon
Название: Re: chroot2pfs
Отправлено: betcher от 11 Ноябрь 2018, 20:34:25
Пока не понятно где ошибка. Вот  и прошу помочь.  В магос пока косяков не вылезло, хотя ничего сложного и не пробовал устанавливать.
Название: Re: chroot2pfs
Отправлено: krasnyh от 11 Ноябрь 2018, 21:08:29
Попробовал поставить mousepad, т.к. это маленький пакет с одной зависимостью.
sudo chroot2pfs -o mousepad.pfs --command pacman -S mousepad
Код
/mnt/.mousepad.pfs % find .
.
./var
./var/cache
./var/cache/pacman
./var/cache/pacman/pkg
./var/cache/pacman/pkg/mousepad-0.4.0-3-x86_64.pkg.tar.xz
./var/lib
./var/lib/chroot2pfs
./var/lib/chroot2pfs/mousepad
./var/lib/chroot2pfs/mousepad/cmdline
./var/lib/chroot2pfs/mousepad/date
./var/lib/pacman
./var/log
./var/log/pacman.log
Получается, что pacman качает пакет в /var/cache/pacman/pkg, но не распаковывает его в корень. И зависимость тоже не скачивает. Удивительно.

Если же через pacman -S
Код
sudo pacman -S mousepad
проверка конфликтов...

Пакеты (2) gtksourceview3-3.24.7-1  mousepad-0.4.0-3

Будет загружено:  0,95 MiB
Будет установлено:  8,58 MiB

:: Приступить к установке? [Y/n]
Название: Re: chroot2pfs
Отправлено: krasnyh от 11 Ноябрь 2018, 21:39:16
 Вроде разобрался. Pacman не может получить доступ к зависимости и прерывается.
Цитата
Пакеты (2) gtksourceview3-3.24.7-1  mousepad-0.4.0-3

Будет загружено:  1,15 MiB
Будет установлено:  8,58 MiB

:: Приступить к установке? [Y/n]
:: Получение пакетов...
ошибка: не удалось получить файл 'gtksourceview3-3.24.7-1-x86_64.pkg.tar.xz' из archive.archlinux.org : The requested URL returned error: 404
предупреждение: не удалось получить некоторые файлы
 mousepad-0.4.0-3-x86_64      207,9 KiB  1106K/s 00:00 [############################]  17%
ошибка: не удалось завершить транзакцию (непредвиденная ошибка)
Обнаружены ошибки, пакеты не обновлены.
/mnt/bundles2/changes1
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on mousepad.pfs, block size 524288.
[=============================================================================|] 4/4 100%

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 524288
   compressed data, compressed metadata, compressed fragments, compressed xattrs
   duplicates are removed
Filesystem size 214.43 Kbytes (0.21 Mbytes)
   88.32% of uncompressed filesystem size (242.80 Kbytes)
Inode table size 206 bytes (0.20 Kbytes)
   45.78% of uncompressed inode table size (450 bytes)
Directory table size 246 bytes (0.24 Kbytes)
   77.85% of uncompressed directory table size (316 bytes)
Number of duplicate files found 0
Number of inodes 14
Number of files 4
Number of fragments 1
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 10
Number of ids (unique uids + gids) 1
Number of uids 1
   root (0)
Number of gids 1
   root (0)
/mnt/sda3/Soft/1811/mousepad.pfs
Из под chroot не может достучаться до archive.archlinux.org. А через sudo pacman2pfs mousepad замечательно ставится.

UPD.
gtksourceview3-3.24.7-1 и mousepad-0.4.0-3 берутся пакманом с одного адреса archive.archlinux.org/repos/2018/05/29/extra/os/x86_64/ (http://archive.archlinux.org/repos/2018/05/29/extra/os/x86_64/)
 Только mousepad попадает в /var/cache....., а gtksourceview3 почему то нет.

UPD2.
Может что-то упущенно? Как в арче организован chroot:
wiki.archlinux.org/index.php/Chroot#Using_chroot (http://wiki.archlinux.org/index.php/Chroot#Using_chroot)

P.s. В /usr/local/bin лежит скрипт sfs - chroot.sh:
Код
#!/bin/sh 
#150618 sfs
[ ! "$1" ] && echo "Use $0 chroot-dir" && exit
[ -f "$1/etc/pacman.conf" ] && sed -i 's/CheckSpace/#CheckSpace/g' "$1/etc/pacman.conf"
chroot="$1"
[ "$1" ] || exit
mkdir -p "$chroot"/proc
mkdir -p "$chroot"/sys
mkdir -p "$chroot"/dev
 mount -t proc none "$chroot"/proc
 mount -t sysfs none "$chroot"/sys
 mount -o bind /dev "$chroot"/dev
 mount -o bind /dev/pts "$chroot"/dev/pts # important for pacman (for signature check)
# Now everything is prepared to chroot into your newly installed Arch environment
 chroot "$chroot" bash

umount "$chroot"/proc
umount "$chroot"/dev/pts
umount "$chroot"/dev
umount "$chroot"/sys
#umount "$chroot"/pr
[ -f "$1/etc/pacman.conf" ] && sed -i 's/#CheckSpace/CheckSpace/g' "$1/etc/pacman.conf"
Название: Re: chroot2pfs
Отправлено: betcher от 12 Ноябрь 2018, 04:44:00
Модули подключаются в чрут в том порядке как отдает aufs-n, то есть не как в системе, а наоборот. Может в этом быть проблема для пра? Просто в  базовых модулях магос нет пересекающихся файлов и модули можно подключить в любом порядке, по этому этот момент пока упустил.
Думаю добавить в aufs-n ключики  --reverse и --hidetop.
Название: Re: chroot2pfs
Отправлено: sfs от 12 Ноябрь 2018, 09:34:04
Думаю надо делать скрипт дистронезависимым:
-a=pfs1.pfs;file2fs;папка - т.е. собираем слои в порядке перечисления
-cmd команда из подключенного модуля. Наиболее востребовано будет -cmd=bash
-scr внешний скрипт
Таким образом влезаем в консоль любого дистар и модифицируем что надо с возможностью сохранения
В пра очень актуальна сборка новых модулей с подключенными только базовыми
Под специфику ПРА и Магос - лучше сделать отдельные скрипты с использованием chroot2pfs
Название: Re: chroot2pfs
Отправлено: betcher от 12 Ноябрь 2018, 10:02:36
Он и задуман дистронезавимимым.  -- command bash  думаю и сейчас сработает как вы хотите.  --script нужен для пересобираемых модулей. Указанный скрипт будет сохранен внутри модуля.
Могут ли странности с pacman быть связаны с тем, что модули пра подключены в чруте в обратном порядке?
Название: Re: chroot2pfs
Отправлено: betcher от 12 Ноябрь 2018, 10:05:09
сейчас для подклюяаемых модулей есть маска, упрощенно так aufs-n  | grep $маска
Можно добавить и список, но он может быть весьма длинным. Удобно ли?
Название: Re: chroot2pfs
Отправлено: sfs от 12 Ноябрь 2018, 10:19:16
-a=pfs1.pfs;file2fs;папка - т.е. собираем слои в порядке перечисления
Надо ли усложнять со слоями...
Так идеально. Каждый сам слои определит. Не надо тут автоматики. Это уже в дистрозависимые скрипты...
Название: Re: chroot2pfs
Отправлено: sfs от 12 Ноябрь 2018, 10:30:39
Из сегодняшнего гита (добавил ссылку в шапку) - работает
Не понятно, как управлять подключаемыми модулями...
И при повторном запуске заклинило ауфс
Название: Re: chroot2pfs
Отправлено: betcher от 12 Ноябрь 2018, 11:14:24
Не соглашусь по выбору модулей. Маска во многих случаях проще, у вас, кстати, модулей подключается больше чем в магос даже. Опухнешь перечислять. А по маске -m /base   все базовые, -m .xzm, только xzm, -m ^[0-4]* все названия которых начинаются с 1,2,3,4  и т.д.
Можно просто оба варианта оставить.
Название: Re: chroot2pfs
Отправлено: sfs от 12 Ноябрь 2018, 11:22:14
-m ^[0-4]*
Для пра вполне : -m ^0[0-7]*
Только если будет искать в /base - уже дистрозависимо
Для пра03 и 1801 - вообще достаточно только 001
Слои будут по цифрам? 0 ниже 1?
Название: Re: chroot2pfs
Отправлено: betcher от 12 Ноябрь 2018, 13:50:01
Тогда так:
- по умолчанию список как в aufs-n
- m --mask по маске
--modlist список;через;двоеточие
--flist /список/из/файла
норм?
Название: Re: chroot2pfs
Отправлено: sfs от 12 Ноябрь 2018, 13:54:21
Отлично. Как слоями упрвлять?
Маска - по алфавиту, списки по списку?
Название: Re: chroot2pfs
Отправлено: betcher от 12 Ноябрь 2018, 14:04:58
С маской в том порядке как в системе подключено.  А ы списках в порядке перечисления.
Название: Re: chroot2pfs
Отправлено: sfs от 12 Ноябрь 2018, 15:16:30
норм
Название: Re: chroot2pfs
Отправлено: betcher от 13 Ноябрь 2018, 16:40:37
Сделал. Хелпа нет пока тут опишу.
--mask | -m  "^[0-9]"  Маска для системных бандлов, которые надо подключить. Подключаются в том же порядке что и в системе, за исключением модулей, которые под маску не подходят. Маска в формате grep.
--mlist "/путь/файл.pfs;/путь/папка"   Список папок и модулей через ";" Подключаются в порядке перечисления.
--flist /путь/файл.lst список модулей и папок из файла по одному на строку, подключаются в порядке перечисления.

Все три способа можно скомбинировать. Сперва подключаются модули по маске потом по списку потом из файла, не зависимо от того в каком порядке вы их в chroot2pfs передадите.

Если слои никак не заданы, то подключаются все те слои что в системе подключены и в том же порядке.

З.Ы. Вот сижу сейчас и думаю. Если я сейчас в магос в chroot2pfs передам --mlist список базовых модулей от ПРА у меня модули для пра будут собираться :)) ???

Название: Re: chroot2pfs
Отправлено: betcher от 13 Ноябрь 2018, 16:41:23
Забыл. Нужен новый aufs-n тоже.
Название: Re: chroot2pfs
Отправлено: betcher от 16 Ноябрь 2018, 18:01:38
Не проверяли?
Название: Re: chroot2pfs
Отправлено: krasnyh от 16 Ноябрь 2018, 18:25:25
Не проверяли?
Брал chroot2pfs сегодня. У меня не работает.
Код
sudo ./chroot2pfs -o mousepad.pfs --command pacman -S mousepad
aufs number: 1
df: '/mnt/sda3/Soft/1811/layer:': Нет такого файла или каталога
can't insert layer to aufs 1
Цитата
$ ls -l /mnt
итого 16
drwxrwxrwt  4 root root  100 ноя 16 18:16 aufs1
-rw-r--r--  1 root root   11 ноя 16 18:16 aufs1.lock
drwxrwxrwt  4 root root  100 ноя 16 18:16 changes1
lrwxrwxrwx  1 root root    9 ноя 16  2018 home -> /mnt/sda1
drwxr-xr-x 18 root root  480 ноя 16  2018 live
drwxr-xr-x  8 root root 4096 ноя  7 01:05 sda1
drwxr-xr-x  9 root root 4096 ноя  7 00:10 sda2
drwxrwxrwx 19 live root 4096 ноя 16 16:33 sda3
Название: Re: chroot2pfs
Отправлено: sfs от 16 Ноябрь 2018, 19:29:18
Пока очень поверхностно. Сейчас обдумываю механизацию сборки ПРа. chroot2pfs там , возможно будет центральной утилитой. Собирать модули поверх слоев
Т.е. скоро возьмусь...
Название: Re: chroot2pfs
Отправлено: betcher от 16 Ноябрь 2018, 20:45:32
Брал chroot2pfs сегодня. У меня не работает.
А aufs-n новый? Из v4? Если новый проверьте пожалуйста его отдельно.
aufs-n --hidetop --reverse --raw '$bundle'
Название: Re: chroot2pfs
Отправлено: krasnyh от 16 Ноябрь 2018, 21:01:50
Был старый.
Проверил chroot2pfs. Скрипт отработал, pacman опять с ошибками:
Код
Пакеты (2) gtksourceview3-3.24.7-1  mousepad-0.4.0-3

Будет загружено:  1,15 MiB
Будет установлено:  8,58 MiB

:: Приступить к установке? [Y/n]
:: Получение пакетов...
ошибка: не удалось получить файл 'gtksourceview3-3.24.7-1-x86_64.pkg.tar.xz' из archive.archlinux.org : Could not resolve host: archive.archlinux.org
предупреждение: не удалось получить некоторые файлы
ошибка: не удалось получить файл 'mousepad-0.4.0-3-x86_64.pkg.tar.xz' из archive.archlinux.org : Could not resolve host: archive.archlinux.org
предупреждение: не удалось получить некоторые файлы
ошибка: не удалось завершить транзакцию (ошибка в библиотеке загрузки)
Обнаружены ошибки, пакеты не обновлены.
Код
$ aufs-n --hidetop --reverse --raw '$bundle'
/mnt/live/memory/images/000-kernel-4.19.2-pf5_64.pfs
/mnt/live/memory/images/001-kernel-schedulers.pfs
/mnt/live/memory/images/001-pra-roll-1806-sf08.pfs
/mnt/live/memory/images/030-gtk3-3.22.30-1-1806-sf05.pfs
/mnt/live/memory/images/084-theme-ater-prar-p-sf14.pfs
/mnt/live/memory/images/ffmpeg-light-4.0-1-1806-sf01.pfs
/mnt/live/memory/images/linux-firmware-light-171204_any-sf01.pfs
/mnt/live/memory/images/mpv-light-0.28.0-1806-sf02.pfs
/mnt/live/memory/images/spacefm-ng-gtk3-p-1.0.6-1_64-sf03.pfs
/mnt/live/memory/images/089-de-tint2g-gtk3-p_64-sf06.pfs
/mnt/live/memory/images/089-prar-upd-1806-sf15.pfs
/mnt/live/memory/images/090-save-181014-pra-roll.pfs
Название: Re: chroot2pfs
Отправлено: betcher от 16 Ноябрь 2018, 21:08:29
Можно попробовать раскомментарить строку 122. Если не поможет, нужно будет грузить с --command  /bin/bash и смотреть отчего чудит пакман в чруте.
Название: Re: chroot2pfs
Отправлено: krasnyh от 16 Ноябрь 2018, 21:35:50
Если не поможет, нужно будет грузить с --command  /bin/bash
Похоже это мой косяк. У меня в 1806-gtk3 установлен zsh.

 Сейчас загрузился с другой системы (bash; gtk2). Скрипт отработал на отлично.
Пробовал ставить mtpaint, т.к. mousepad - gtk3 приложение. Mtpaint установился и запустился.
Код
Пакеты (3) lcms2-2.9-1  openjpeg-1.5.2-1  mtpaint-3.40-17

Будет загружено:  0,80 MiB
Будет установлено:  2,66 MiB

:: Приступить к установке? [Y/n]
:: Получение пакетов...
 openjpeg-1.5.2-1-x86_64      134,8 KiB   911K/s 00:00 [############################]  16%
 lcms2-2.9-1-x86_64           321,4 KiB   846K/s 00:00 [############################]  39%
 mtpaint-3.40-17-x86_64       819,8 KiB   865K/s 00:01 [############################] 100%
(3/3) проверка ключей                                  [############################] 100%
(3/3) проверка целостности пакета                      [############################] 100%
(3/3) загрузка файлов пакетов                          [############################] 100%
(3/3) проверка конфликтов файлов                       [############################] 100%
(3/3) проверка доступного места                        [############################] 100%
:: Обработка изменений пакета...

P.s. Я бы предложил некоторые изменения в chroot2pfs. Чтобы в случае ошибки не создавался модуль. Т.к. он все равно пустой получается.
Название: Re: chroot2pfs
Отправлено: krasnyh от 16 Ноябрь 2018, 21:52:30
 Хотя у sfs все работало с самого начала. А он использует gtk2 систему (roll-1801-GTK2-04).
Из сегодняшнего гита (добавил ссылку в шапку) - работает
Может еще причина в roll-1806-GTK3-02? Я на нем все тесты проводил.
Название: Re: chroot2pfs
Отправлено: betcher от 17 Ноябрь 2018, 05:14:04
Вспомнил сейчас, что в каком то из ПРА, пакман сразу после загрузки с исо  не работал. Как правильно лечить не разбирался. Но если запустить из меню псевдогуй для пакмана, то после пакман работал и в консоли тоже. Может наша проблема в этой плоскости :)
Попробуйте --command "псевдогуй". Названия не знаю. И в нем устанавливать софт.
Попробуйте маскировать "свои" модули, чтоб только базовые подключались.
По поводу отслеживания ошибок посмотрю, но не факт, что получится из чрута их увидеть. На крайняк можно добавить ключик, чтоб перед mkpfs спрашивал паковать или нет.
Название: Re: chroot2pfs
Отправлено: betcher от 17 Ноябрь 2018, 17:49:58
Проверил на примере нано:
chroot2pfs -o nano.pfs --command pacman -S nano
и с dpacman на примере firefox c выбором в гуе
chroot2pfs -o fox.pfs --command dpacman

Оба варианта сработали на 1806-gtk3
И пересборка первого модуля тоже, второй при пересборке просто запускает dpacman, что логично.
Название: Re: chroot2pfs
Отправлено: krasnyh от 17 Ноябрь 2018, 18:55:56
1806-gtk3.
Код
sudo chroot2pfs -o nano.pfs --command pacman -S nano
Таже самая ошибка, не может скачать пакеты из archive.archlinux.org
Код
Пакеты (1) nano-2.9.7-1

Будет загружено:  0,42 MiB
Будет установлено:  2,28 MiB

:: Приступить к установке? [Y/n]
:: Получение пакетов...
ошибка: не удалось получить файл 'nano-2.9.7-1-x86_64.pkg.tar.xz' из archive.archlinux.org : Could not resolve host: archive.archlinux.org
предупреждение: не удалось получить некоторые файлы
ошибка: не удалось завершить транзакцию (ошибка в библиотеке загрузки)
Обнаружены ошибки, пакеты не обновлены.

 Но когда я записал на флешку iso roll-1806-GTK3-02 (dd), то все сработало правильно. И с nano, и с mousepad.
Код
Пакеты (2) gtksourceview3-3.24.7-1  mousepad-0.4.0-3

Будет загружено:  1,15 MiB
Будет установлено:  8,58 MiB

:: Приступить к установке? [Y/n]
:: Получение пакетов...
 gtksourceview3-3.24.7-1-x86_64     969,3 KiB  1262K/s 00:01 [################################]  82%
 mousepad-0.4.0-3-x86_64           1177,1 KiB  1102K/s 00:01 [################################] 100%
(2/2) проверка ключей                                        [################################] 100%
(2/2) проверка целостности пакета                            [################################] 100%
(2/2) загрузка файлов пакетов                                [################################] 100%
(2/2) проверка конфликтов файлов                             [################################] 100%
(2/2) проверка доступного места                              [################################] 100%
:: Обработка изменений пакета...
(1/2) установка gtksourceview3                               [################################] 100%
(2/2) установка mousepad                                     [################################] 100%

Похоже причина или в zsh, или в каких-то других индивидуальных настройках. Это минус мне как тестеру. :( :)
Название: Re: chroot2pfs
Отправлено: betcher от 17 Ноябрь 2018, 19:15:53
Настройки могут влиять если они в модулях. В таком случае должна помочь маска, чтоб пользовательские модули не попадали  в aufs chroot'а.
Sfs писал выше какая маска нужна.
Название: Re: chroot2pfs
Отправлено: krasnyh от 17 Ноябрь 2018, 19:39:51
или в каких-то других индивидуальных настройках
Локализовал проблему. У меня сеть поднималась с systemd-networkd. Когда-то включил попробовать и оставил.
https://wiki.archlinux.org/index.php/Systemd-networkd
Но кое-что не устраивало. Слишком поздно поднималась сеть (eth0; static), мой аудиоплеер с sleep 15 стартовал раньше (хотя с netctl проблем не было). И вот теперь еще в тестах 'косяки'.

  Отключил systemd-networkd. Проверил chroot2pfs, теперь все ok.

P.s. Зря наговаривал на systemd-networkd. Его надо просто правильно 'приготовить'. :)
Включил опять systemd-networkd, но в этот раз не включал еще systemd-resolved.
Арчвики:
It is optional to also start/enable systemd-resolved.service, which is a network name resolution service to local applications, considering the following points


Опять проверил chroot2pfs - все ok. И сеть стал поднимать быстро при загрузке PRA.
Название: Re: chroot2pfs
Отправлено: betcher от 19 Ноябрь 2018, 06:30:05
Добавил виртуализацию с systemd-nspawn. Выбирается автоматом если загружены с системд и есть systemd-nspawn. Чтоб принудительно переключить на chroot, добавьте -c chroot.
Проверяйте :)
Название: Re: chroot2pfs
Отправлено: betcher от 19 Ноябрь 2018, 09:56:45
Добавил пересбоку списка модулей. 
Добавил --mkscript, с этим ключем в текущей папке создается скрипт-заготовка такого содержания:
Код
#!/bin/bash
# apt-get install package
# urpmi package
# pacman -S package
# /bin/bash
rm -rf  /var/tmp  /var/cache/{urpmi,ldconfig}  /etc/{urpmi,ld.so.cache,localtime,machine-id,resolv.conf} \
/var/lib/{rpm,urpmi,menu} /usr/share/applications/mimeinfo.cache  /.wh* 2>/dev/null
find "$mod_br/usr/share/icons" -type f -name icon-theme.cache 2>/dev/null | xargs rm -f

С этим шаблоном еще поработать надо. Жду идей.
Название: Re: chroot2pfs
Отправлено: sfs от 19 Ноябрь 2018, 10:28:23
Добавил виртуализацию с
systemd-nspawn (https://wiki.archlinux.org/index.php/Systemd-nspawn_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29)
Круто +
Не поспеваю за Вами, но обязательно скоро подключусь
krasnyh -спасибо за участие +
Название: Re: chroot2pfs
Отправлено: betcher от 19 Ноябрь 2018, 13:24:34
Не поспеваю за Вами
Это время пока есть. Скоро не будет :)
Название: Re: chroot2pfs
Отправлено: betcher от 20 Ноябрь 2018, 06:50:38
По скрипту как мне кажется хорошая идея. Получается что-то вроде спека.  Инструкция по сборке модуля для конкретных пакетов. Можно установить что нужно, сконфигурировать как надо, удалить лишнее и собрать. Лишнее это не обязательно побочные файлы и папки от чрута или работы ПМ. Можно например локали удалить или доки. А при пересборке все это будет проделано автоматом.
Вчера собирал им росовские обновления, модуль более 300 метров, с использованием скрипта получается на 50 метров меньше, в основном за счет базы рпм и  urpmi.   И равен по размеру модулю собранному urpm2xzm, который заточен под rpm.
Название: Re: chroot2pfs
Отправлено: sfs от 20 Ноябрь 2018, 13:42:32
Проверил в ПРА без systemd : chroot2pfs -o mc.pfs --mlist 001-prar1811 --command pacman -S mc
Все ок, но trim бы не помешал
Начал в шапке сбор инфы для вики - поправьте
Название: Re: chroot2pfs
Отправлено: betcher от 20 Ноябрь 2018, 14:05:16
У вас же трим в системе есть. Тогда все еще проще.
Пишем скрипт mc.sh (расширение sh обязательно пока)
#!/bin/sh
pacman -S mc
trim --pars --for --trim

запускаем
chroot2pfs -o mc.pfs --mlist 001-prar1811 --script mc.sh

С тримом не разбирался, но если им можно чистить относительно текущего / то сработает.
Название: Re: chroot2pfs
Отправлено: krasnyh от 20 Ноябрь 2018, 16:25:30
Все ок, но trim бы не помешал
У вас же трим в системе есть. Тогда все еще проще.
Пишем скрипт mc.sh (расширение sh обязательно пока)
Он лежит в PRA в /usr/local/bin. В pacman2pfs прописан так - pacman && trim
Название: Re: chroot2pfs
Отправлено: sfs от 21 Ноябрь 2018, 09:20:56
если им можно чистить относительно текущего / то сработает.
можно
Для сборки модулей обычно удобнее на выходе иметь папку, а не модуль
Предлагаю :
1. Если не указан -о - на выходе папка chroot2pfs в pwd
С выводом ошибки, если chroot2pfs есть
Можете сделать срочно, чтобы руку не менять? Или я сам
2. Перенести chroot2pfs aufs-n в в.3
4. systemd-nspawn - здесь (http://forum.puppyrus.org/index.php?topic=21213.0) обсудили. Предлагаю включать по ключу
и вообще это надо затачивать под что-то типа docker
Т.е. собрали корень и запустиои в нем что-то
Название: Re: chroot2pfs
Отправлено: Ильфат от 21 Ноябрь 2018, 10:08:37
Для сборки модулей обычно удобнее на выходе иметь папку, а не модуль
Если правильно написан скрипт сборки, то почему не удобнее на выходе иметь сразу модуль?
Я думаю, если указано имя без расширения, то mkpfs должен создать папку вместо модуля.
Если не указан -о - на выходе папка chroot2pfs в pwd
С выводом ошибки, если chroot2pfs есть
Можно как в МагОС в утилите syschanges добавлять время, на выходе выглядит так:  syschanges_095705
systemd-nspawn - здесь обсудили. Предлагаю включать по ключу
В принципе он и сейчас по ключу включается, только сейчас именно этот вариант по умолчанию. Я так понял поведение по умолчанию можно будет вывести в конфиг. Ну тут Александр подскажет.
Название: Re: chroot2pfs
Отправлено: Ильфат от 21 Ноябрь 2018, 10:12:43
и вообще это надо затачивать под что-то типа docker
Т.е. собрали корень и запустиои в нем что-то
Тут не совсем понял. chroot2pfs под Докер затачивать или что?
Название: Re: chroot2pfs
Отправлено: betcher от 21 Ноябрь 2018, 10:14:31
Для сборки модулей обычно удобнее на выходе иметь папку, а не модуль
Если после -o имя_без_расширения mkpfs сделает папку. Думаю этого достаточно.
2. Перенести chroot2pfs aufs-n в в.3
Я против. На сегодняшнем этапе изменения частые, порой и без селфтеста. Лучше подождать.
Название: Re: chroot2pfs
Отправлено: betcher от 21 Ноябрь 2018, 10:24:41
На счет чрута по умолчанию, а nspawn по ключу не против, сделаю.
Докер может тоже прикручу :)
Название: Re: chroot2pfs
Отправлено: sfs от 21 Ноябрь 2018, 10:28:42
Если правильно написан скрипт сборки, то почему не удобнее на выходе иметь сразу модуль?
Например хочу переделать в портированный (в /opt)
syschanges_095705
Отлично
systemd-nspawn
Предлагаю сменить умолчание. Для создания модуля - только лишние кеши создаст. Смысл?
chroot2pfs под Докер затачивать или что?
Вместо. Это уже другая история и я плохо знаком с докером
Если после -o имя_без_расширения mkpfs сделает папку. Думаю этого достаточно.
Работает. Может всетаки
1. Если не указан -о - на выходе папка chroot2pfs в pwd
Экономим ключ. Меньше писать руками
    2. Перенести chroot2pfs aufs-n в в.3
Я против.
Ок. но тестировать эти 2 скрипта ведь можно и в в3?
Название: Re: chroot2pfs
Отправлено: betcher от 21 Ноябрь 2018, 10:36:13
Тестировать можно в v3. Пока только 2скрипта надо.
По -o надо подумать. Если нет -o, то возможно вы просто забыли вписать. Результат совсем не тот, что ожидался. Сейчам без -o спросит имя, впишете без расширения будет папка.
Название: Re: chroot2pfs
Отправлено: Ильфат от 21 Ноябрь 2018, 10:41:02
Докер может тоже прикручу
Мне почему-то кажется, что это будет намного сложнее ))
Название: Re: chroot2pfs
Отправлено: sfs от 21 Ноябрь 2018, 10:42:39
Если нет -o, то возможно вы просто забыли вписать
Или было лень писать. Проще сделать mkpfs. У меня это прикручено к mc - удобно. Могу поделиться
Сейчам без -o спросит имя, впишете без расширения будет папка.
Работает. Тогда норм. Надо в доку
Добавил в шапку
Название: Re: chroot2pfs
Отправлено: sfs от 21 Ноябрь 2018, 11:04:44
На счет чрута по умолчанию, а nspawn по ключу не против, сделаю.
ок
Докер может тоже прикручу :)
а смысл?
Название: Re: chroot2pfs
Отправлено: Ильфат от 21 Ноябрь 2018, 11:10:35
а смысл?
Мне тоже кажется смысла нет. В принципе самого обычного chroot уже достаточно, плюс на всякий случай есть systemd-nspawn.
Вместо. Это уже другая история и я плохо знаком с докером
И да, вместо прикручивания лучше сразу пытаться все это дело сообразить в Докере.
Название: Re: chroot2pfs
Отправлено: sfs от 21 Ноябрь 2018, 11:12:12
на всякий случай есть systemd-nspawn
Причем для сборки модулей не понятно , когда голый чрут не вывезет...
Название: Re: chroot2pfs
Отправлено: krasnyh от 21 Ноябрь 2018, 16:43:01
 Если вопрос стоит - зачем docker в чрут, когда есть nspawn, то надо учитывать, что последний требует systemd. А у нас есть легкие PRA без него.
Docker - это утилита для упаковки, отправки и запуска любого приложения в виде легкого контейнера.
https://wiki.archlinux.org/index.php/Docker

 Может кому-то понадобится docker. Если автор желает прикрутить, почему нет.

P.s. По поводу чрут в папку или модуль, тоже за модуль. За все время использования pacman2pfs мне почти всегда был нужен именно он. Лишние движения с упаковкой.
Название: Re: chroot2pfs
Отправлено: sfs от 21 Ноябрь 2018, 17:22:09
Если вопрос стоит - зачем docker в чрут
Вопрос стоит: зачем для сборки модулей что-то кроме чрут
По поводу чрут в папку или модуль, тоже за модуль
Уже определились, что при разных ключах можно получить разный выход
Название: Re: chroot2pfs
Отправлено: sfs от 22 Ноябрь 2018, 17:01:31
Не работает --mlist dir1, dir2
Т.е. >1
--mlist "dir1, dir2" не помогло
flist наверное тоже
Название: Re: chroot2pfs
Отправлено: krasnyh от 22 Ноябрь 2018, 17:15:31
Не работает --mlist dir1, dir2
Наверно и с масками тоже (--mask)? Пробовал чрут с масками, не удалось запустить.
В итоге использовал --mlist, правда с одним модулем.
Название: Re: chroot2pfs
Отправлено: krasnyh от 22 Ноябрь 2018, 17:32:58
Поправка по поводу --mlist. Сейчас перепроверил, работает:
Код
sudo chroot2pfs -o nano.pfs --mlist "000-kernel-4.19.2-pf5_64.pfs,001-pra-roll-1806-sf08.pfs" --command pacman -S nano
Using:  nspawn
aufs number: 3
/mnt/bundles3/000-kernel-4.19.2-pf5_64.pfs
/mnt/bundles3/001-pra-roll-1806-sf08.pfs

Название: Re: chroot2pfs
Отправлено: sfs от 22 Ноябрь 2018, 17:34:25
Да. Там надо чтобы "dir1, dir2" обрабатывались как 1 аргумент
А сватывается только первый
Название: Re: chroot2pfs
Отправлено: sfs от 22 Ноябрь 2018, 17:37:51
Да. надо "dir1,dir2" без пробелов
Надо это во встроенный хелп. Лучше примером

Делаю trim-chroot для чистки
Есть сомнения про пустые папки. Не удаляю.Иначе некоторые проги не будут работать
Название: Re: chroot2pfs
Отправлено: krasnyh от 22 Ноябрь 2018, 17:42:03
А что у нас в PRA с масками? Как не включаю - вся база загружается.
Так --mask "^0[0-1]*" или так --mask "^0[3-9]*" не работает.

А нет, работают. Я думал чрут настроен только на базу.

 P.s. Надо просто еще ноль в маску добавить:
Код
sudo chroot2pfs -o nano.pfs --mask "^00[0-1]*" --command pacman -S nano
Using:  nspawn
aufs number: 4
/mnt/bundles4/000-kernel-4.19.2-pf5_64.pfs
/mnt/bundles4/001-kernel-schedulers.pfs
/mnt/bundles4/001-pra-roll-1806-sf08.pfs
Название: Re: chroot2pfs
Отправлено: betcher от 22 Ноябрь 2018, 17:58:13
Все верно ","  или ";" заменятся на пробелы. То есть даже кавычки не нужны. Только разделители.
Название: Re: chroot2pfs
Отправлено: betcher от 22 Ноябрь 2018, 18:04:03
По поводу пустых папок. Посмотрите тот скрипт, что сейчас внутри croot2pfs, это кусок который Михаил написал для urpm2xzm. Проблем не было. Удалять все пустые подряд конечно нельзя.
Название: Re: chroot2pfs
Отправлено: sfs от 22 Ноябрь 2018, 18:32:31
Посмотрите тот скрипт, что сейчас внутри croot2pfs,
Для не первого (основного) модуля (который надо все-равно собирати типа debostrap) - норм, но я еще дописал
Т.е. фиксируем, что 1й модуль с /dev и пр. мы имеем готовый, а не делаем chroot2pfs ?
Название: Re: chroot2pfs
Отправлено: sfs от 22 Ноябрь 2018, 18:34:47
","  или ";" заменятся на пробелы. То есть даже кавычки не нужны
Нужны. без них только 1й модуль
Название: Re: chroot2pfs
Отправлено: betcher от 22 Ноябрь 2018, 18:47:50
А ну да - ; же. С запятой наверное можно без кавычек.
Название: Re: chroot2pfs
Отправлено: betcher от 22 Ноябрь 2018, 18:52:02
Думаю шаблон нужно делать под "непервый" модуль. Для первого придется немного исправлять скрипт, чтоб не удалял основных каталогов. Короче надо думать.
Название: Re: chroot2pfs
Отправлено: Ильфат от 22 Ноябрь 2018, 19:10:12
chroot2pfs -o module.xzm --command urpmi nano && ln -s  /usr/bin/nano /bin/nano # не проверено
Так не работает. Все что после && это следующая команда. С кавычками, в том числе со строгими, тоже не работает. Если нужно в чрут передать более одной команды используется --script.
Название: Re: chroot2pfs
Отправлено: Ильфат от 22 Ноябрь 2018, 19:13:23
А ну да - ; же. С запятой наверное можно без кавычек.
Лучше юзать запятую, по крайней мере в шеллах, проблем меньше))
Название: Re: chroot2pfs
Отправлено: betcher от 22 Ноябрь 2018, 19:19:10
Так не работает
А если в круглых скобках ?
Название: Re: chroot2pfs
Отправлено: Ильфат от 22 Ноябрь 2018, 19:29:50
А если в круглых скобках ?
Тоже не работает
Код
-bash: ошибка синтаксиса около неожиданной лексемы «(»
Название: Re: chroot2pfs
Отправлено: krasnyh от 22 Ноябрь 2018, 20:25:50
    chroot2pfs -o module.xzm --command urpmi nano && ln -s  /usr/bin/nano /bin/nano # не проверено
Так не работает.
Работает.
Код
sudo chroot2pfs -o nano.pfs --command pacman -S nano && sudo ln -s /usr/bin/nano /usr/local/bin/nano
Запустил команду два раза, чтобы было видно в конце:
Цитата
delaufs 1
bundles1
/home/live/nano.pfs
ln: не удалось создать символьную ссылку '/usr/local/bin/nano': Файл существует

Название: Re: chroot2pfs
Отправлено: Ильфат от 22 Ноябрь 2018, 21:01:28
Работает.
У вас команда sudo ln -s /usr/bin/nano /usr/local/bin/nano отрабатывает не в чруте, а в системе
Название: Re: chroot2pfs
Отправлено: krasnyh от 22 Ноябрь 2018, 21:27:29
Да. В nano.pfs ссылка не создается, создается в системе.  Получается && запускает новую команду, не в чруте.
Название: Re: chroot2pfs
Отправлено: Ильфат от 22 Ноябрь 2018, 21:30:42
Получается && запускает новую команду, не в чруте
Вот именно, так и должно быть.
Название: Re: chroot2pfs
Отправлено: krasnyh от 22 Ноябрь 2018, 21:42:33
Получается && запускает новую команду, не в чруте.
Вторую команду все же тоже запускает чрут:
Цитата
bundles1
/home/live/nano.pfs
ln: не удалось создать символьную ссылку '/usr/local/bin/nano': Файл существует

 Но даже если создавать чрутом папку, он все равно создает ссылку в реальной системе.

upd.
Вторую команду все же тоже запускает чрут:
Или нет. :) Запутался.
Название: Re: chroot2pfs
Отправлено: Ильфат от 22 Ноябрь 2018, 21:47:08
Вторую команду все же тоже запускает чрут
Это не так. Для оболочки это следующая команда, при условии успешного выполнения первой. Первая в данном случае chroot2pfs. Можете даже не проверять, это факт.
Название: Re: chroot2pfs
Отправлено: krasnyh от 22 Ноябрь 2018, 22:23:31
Наверно тогда, чтобы чрут считал эту команду скриптом и запускал внутри?
Код
sh -c 'pacman -S nano && ln -s /usr/bin/nano /usr/bin/local/nano' 
Название: Re: chroot2pfs
Отправлено: Ильфат от 22 Ноябрь 2018, 22:33:32
Наверно тогда, чтобы чрут считал эту команду скриптом и запускал внутри?
В чем проблема просто взять и использовать --script? :)
Название: Re: chroot2pfs
Отправлено: sfs от 23 Ноябрь 2018, 09:07:41
С запятой наверное можно без кавычек.
Да. Предлагаю убрать ; - лишние проблемы

spawn по дефолту уже убрали?
Думаю шаблон нужно делать под "непервый" модуль. Для первого придется немного исправлять скрипт
Вряд ли это возможно универсально
Под каждый ПМ будет свое.
Думаю надо остановиться на том, что 1й модуль собирается другими средствами
Название: Re: chroot2pfs
Отправлено: Ильфат от 23 Ноябрь 2018, 09:18:13
Предлагаю убрать ; - лишние проблемы
Тоже предлагаю )
Название: Re: chroot2pfs
Отправлено: sfs от 23 Ноябрь 2018, 14:00:04
Добавил
Код
[ -f "${NAME}" ] && exitmsg "Output file '$NAME' already exist" 6
[ -d "${NAME}" ] && exitmsg "Output diectory '$NAME' already exist" 6
Иначе скрипт вылетал на mkpfs и оставлял примонтированное

https://github.com/pfs-utils/pfs-utils-cli/commit/18620dce7803f5f37624bb6b8f78a42da4a1e008
это вы совсем убрали
Лучше бы ключ. Для сборки модулей не нужно, а для запуска пригодится
Название: Re: chroot2pfs
Отправлено: betcher от 23 Ноябрь 2018, 15:47:59
Не, это я убрал автовключение nspawn на системах с системд. По ключу должно работать.
Убрать ";" не против.
Название: Re: chroot2pfs
Отправлено: betcher от 27 Ноябрь 2018, 15:58:33
Есть мысль, предлагаю обмозговать.
У нас есть запуск команды, у нас есть запуск скрипта, у нас есть встроенный скрипт. Напрашивается промежуточный вариант между --script и --command. То есть встроенный скрипт копируется в чрут (как --script), после чего в него второй строкой после ша-банг вставляется команда которую мы передали chroot2pfs. То есть и выполнение команды и очистка чрута перед mkpfs. Должно быть удобно, не могу придумать как это должно включаться.
Название: Re: chroot2pfs
Отправлено: Ильфат от 27 Ноябрь 2018, 17:19:54
То есть встроенный скрипт копируется в чрут (как --script), после чего в него второй строкой после ша-банг вставляется команда которую мы передали chroot2pfs. То есть и выполнение команды и очистка чрута перед mkpfs.
Я не совсем уловил мысль.
Название: Re: chroot2pfs
Отправлено: Ильфат от 27 Ноябрь 2018, 17:29:53
Мне интересен скрипт между chroot и mkpfs, который будет работать в результирующей папке. Подчищать будет проще, о тенях можно не беспокоиться.
Название: Re: chroot2pfs
Отправлено: betcher от 27 Ноябрь 2018, 17:51:15
Я не совсем уловил мысль.
У нас есть встроенный скрипт. Приблизительно:
#!/bin/bash
rm /что-то/не/нужное
rm /что-то/не/нужное
rm /что-то/не/нужное

chroot2pfs запускается с командой urpmi nano

Мы копируем скрипт  в чрут и записываем в него команду.
Получается:

#!/bin/bash
urpmi nano
rm /что-то/не/нужное
rm /что-то/не/нужное
rm /что-то/не/нужное

Это и выполняем.
Название: Re: chroot2pfs
Отправлено: Ильфат от 27 Ноябрь 2018, 17:57:52
У нас есть встроенный скрипт.
Это который trim?
Название: Re: chroot2pfs
Отправлено: betcher от 27 Ноябрь 2018, 18:02:53
Это который trim?
Ну пока еще нет, но по замыслу - да. Укороченный только.
Название: Re: chroot2pfs
Отправлено: Ильфат от 27 Ноябрь 2018, 18:11:05
Мы копируем скрипт  в чрут и записываем в него команду.
А в чем разница между выполнить команду urpmi nano в чруте, а за ней выполнить встроенный скрипт? Какую пользу мы получим встраивая нашу команду в этот скрипт?
Название: Re: chroot2pfs
Отправлено: Ильфат от 27 Ноябрь 2018, 18:13:35
Мне кажется  trim надо делать не в чруте, а в итоговой папке. В чруте же с тенями надо заморачиваться.
Название: Re: chroot2pfs
Отправлено: betcher от 27 Ноябрь 2018, 18:22:20
А в чем разница между выполнить команду urpmi nano в чруте, а за ней выполнить встроенный скрипт?
Передать chroot, что надо выполнить две команды подряд не так просто как оказалось.
Мне кажется  trim надо делать не в чруте, а в итоговой папке. В чруте же с тенями надо заморачиваться.
Во встроенном скрипте смысл не только в удалении ненужного, но в первую очередь в выплнении серии действий в чруте.
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 09:39:10
второй строкой после ша-банг вставляется команда которую мы передали chroot2pfs.
Чем это будет лучше обработки выходной папки после выхода из chroot
Предлагаю вставить вызов http://forum.puppyrus.org/index.php?topic=21214.msg150870#msg150870 в chroot2pfs перед mkpfs
Ну и доработать дод не арч
Во встроенном скрипте смысл не только в удалении ненужного, но в первую очередь в выплнении серии действий в чруте.
--command bash и делайте что нужно хоть внутри чрута, хоть извне
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 10:23:10
Баш в чруте это понятно. Но введенные вами команды не сохранятся и модуль получится не пересобираемым. Разве что из history скрипт делать :)
По трим. Если трим бует выполняться не в чруте, то встроенный скрипт не нужен и его можно выпилить. Предлагаю такой вариант тогда. Trim ( сокращенный) делаем функцией в pfs и допиливаем mkpfs'у ключ --trim, который нам все и почистит перед  mksquashfs. Соответственно у chroot2pfs тоже делаем ключ  --trim, который просто передается mkpfs'у.
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 11:19:47
Если трим бует выполняться не в чруте
Чем это лучше....
введенные вами команды не сохранятся и модуль получится не пересобираемым.
Я собирал пра1811 так : chrot2pfs -mklist ... -command pacman -S
Из полезной инфы для меня здесь список -mklist, который сохраняется
Далее trim-chroot удаляет точно ненужное
Далее , при желании, trim
mkpfs
Если нужно что-то прикрутить не через пакеты - для этого отдельный модуль вверху ауфс

В итоге - в пра проще  добавить trim-chroot в trim
И для других дистров - делать свой trim и юзать его в составе аналогов pacman2pfs
Так будет универсальнее
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 11:27:27
Прочитал дважды - не понял. Поясните еще раз.
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 11:50:20
введенные вами команды не сохранятся и модуль получится не пересобираемым.
Имел ввиду , что в стандартном модуле не должно быть ничего кроме пакетов. Список которых сохраняется в ключах pacman2pfs
Не надо там больше ничего делать - для этого отдельный рукодельный модуль
Это было не понятно или про трим?
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 11:57:05
про chroot-trim не понял.
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 12:40:11
Имел ввиду , что в стандартном модуле не должно быть ничего кроме пакетов. Список которых сохраняется в ключах pacman2pfs
Это да, в стандартной ситуации должно быть не сложнее chroot2pfs -o nano.pfs --command pacman -S nano
А вот в нестандартной что-то типа этого.
chroot2pfs -o httpd.pfs --script httpd.sh
с таким приблизительно скриптом:
#!/bin/bash
pacman -S httpd
pacman -S mysql
rm -f /etc/passwd
rm -f /etc/shadow
rm -rf /var/www
mkdir -p /etc/rc.d/rc.local.MagOS
echo "#!/bin/bash " > /etc/rc.d/rc.local.MagOS/httpd
echo "adduser www-data" >> /etc/rc.d/rc.local.MagOS/httpd
chmod +x /etc/rc.d/rc.local.MagOS/httpd

И вот это уже сохранится и при пересборке с chroot2pfs httpd.pfs соберется ровно также.

Так что на счет trim в либу pfs? Пробуем.
Потом используем так:
mkpfs --trim ./dir
или
chroot2pfs -o mod.pfs --trim --command pacman -S proga




Название: Re: chroot2pfs
Отправлено: Ильфат от 28 Ноябрь 2018, 12:42:48
Предлагаю такой вариант тогда. Trim ( сокращенный) делаем функцией в pfs и допиливаем mkpfs'у ключ --trim, который нам все и почистит перед  mksquashfs.
Мне кажется хороший вариант
Соответственно у chroot2pfs тоже делаем ключ  --trim, который просто передается mkpfs'у.
Можно для chroot2pfs сделать ключ --no-trim (--notrim), а trim включить по умолчанию. Или вообще сделать оба ключа сразу в mkpfs, а в pfs.cfg задать поведение по умолчанию, но чтоб ключом можно было изменить это.
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 13:01:12
с таким приблизительно скриптом:
На мой взгляд - все кроме пакетов надо в отдельный модуль или опакетить

trim - в пра надо расширенный вариант. Причем в разных случаях с разными ключами
Код
-d - выделить DEV (нужное для только компиляции)
-l - локали
-m - doc, gtk-doc, info, licenses, man и пр.."
Т.е. мне первый трим не помешает, но все равно надо вторым прогонять
chroot2pfs -o mod.pfs --trim --command pacman -S proga
А для чего может понадобиться без --trim ? Т.е. это лучше как минимум по дефолту
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 13:18:14
Т.е. мне первый трим не помешает, но все равно надо вторым прогонять
Можно название поменять чтоб не путаться.
А для чего может понадобиться без --trim ? Т.е. это лучше как минимум по дефолту
Тогда --notrim как Ильфат предложил.
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 13:25:07
Можно название поменять чтоб не путаться.
Как тут запутаться. Маленький трим только так : pfs trim можно запустить
Только нужен ли он не для chroot2pfs. Хотя и не помешает
Название: Re: chroot2pfs
Отправлено: krasnyh от 28 Ноябрь 2018, 13:28:59
trim - в пра надо расширенный вариант. Причем в разных случаях с разными ключами

-d - выделить DEV (нужное для только компиляции)
-l - локали
-m - doc, gtk-doc, info, licenses, man и пр.."

 Именно для PRA trim уже не так актуален после добавления glob разработчиками пакмана. Только для DEV при компиляции, это уже makepkg.
 Неактуален, потому что все команды трима можно прописать в pacman.conf - NoExtract.
http://forum.puppyrus.org/index.php?topic=19919.msg150861#msg150861
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 13:38:53
все команды трима можно прописать в pacman.conf - NoExtract
Ключами трима управлять удобнее и в NoExtract очень урезанный regex
Посмотрите как я там локали вырезал
Можно кому как нравится
Название: Re: chroot2pfs
Отправлено: Ильфат от 28 Ноябрь 2018, 13:40:48
Мне кажется одного универсального трима достаточно для chroot2pfs. Дистро-специфические тримы вы можете через хуки для Pacman делать, а мы через шаблоны для --script. Если шаблоны не подходят для этого, так как работают в чруте, то как идею могу предложить добавить ключ --trim trim.sh, где trim.sh альтернативный трим, который тоже сохраняется в модуль для пересборки и работает после чрута, как собственно и встроенный трим, но с этим ключом встроенный естественно отключается. А --notrim будет просто отключать встроенный универсальный трим, например просто проверить пересобрать модуль без трима в случае каких-то непонятных глюков. Так сказать исключить трим как виновника.
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 13:46:17
одного универсального трима достаточно для chroot2pfs
Никто и не спорит. Меня устраивает
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 13:47:11
Если шаблоны не подходят для этого, так как работают в чруте, то как идею могу предложить добавить ключ --trim trim.sh, где trim.sh альтернативный трим, который тоже сохраняется в модуль для пересборки и работает после чрута, как собственно и встроенный трим, но с этим ключом встроенный естественно отключается
Перебор, не?
Название: Re: chroot2pfs
Отправлено: Ильфат от 28 Ноябрь 2018, 13:48:56
--trim trim.sh, где trim.sh альтернативный трим
Единственное надо будет учитывать, что все пути должны начинаться без первого слэша. Поэтому ваш расширенный трим возможно без доработки не подойдёт, не смотрел как он устроен.
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 13:49:49
Перебор, не?
да
Название: Re: chroot2pfs
Отправлено: Ильфат от 28 Ноябрь 2018, 13:51:11
Никто и не спорит. Меня устраивает
Просто вы написали, что вам второй трим надо прогонять. Не так понял видимо.
Название: Re: chroot2pfs
Отправлено: Ильфат от 28 Ноябрь 2018, 13:52:30
Перебор, не?
Скорее всего да)) Поэтому и написал, что просто как и идея, мало ли)
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 13:55:52
вам второй трим надо прогонять
Ну так соберу -o папка и буду гонять в ней что захочу   ;)
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 13:55:58
Попытаюсь резюмировать.
Берем мелкий трим и делаем из него функцию в pfs, которая принимает один аргумент путь до условного корня.
В mkpfs добавляем ключ -trim, при включении которого перед mksquashfs changes выполняется trim changes.
В chroot2pfs -trim  для mkpfs включаем по умолчанию, с опцией --notrim отключаем.
Скрипт-шаблон из chroot2pfs удаляем.
Все так?
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 13:58:02
Скрипт-шаблон из chroot2pfs удаляем.
переносим в trim
Все так?
да. И пишем доку. Мне пока некогда. Если кто напишет - постите сюда - перенесу в вики
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 13:59:51
Мне пока некогда.
Пока тоже, но хоть план работы есть :)
Название: Re: chroot2pfs
Отправлено: Ильфат от 28 Ноябрь 2018, 14:12:03
Ну так соберу -o папка и буду гонять в ней что захочу   
Ну вот всё руками хотите делать ;) chroot2pfs предлагает полную автоматизацию сборки модуля для его пересборки в дальнейшем одной командой: chroot2pfs ваш-модуль.xzm
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 14:23:47
Большой трим тоже будет доступен в чруте если модуль в котором он лежит подключается (по маске). Так что этот трим можно использовать внутри скрипта (--script) я думаю. Имею ввиду в пра.
Название: Re: chroot2pfs
Отправлено: Ильфат от 28 Ноябрь 2018, 17:00:26
Нужен инструмент (читай опция) для копирования локальных папок и файлов в чрут. Пример, у меня есть rpm файл, мне нужно создать модуль  установив в чруте этот самый rpm. Как мне перенести его туда?
P.S. Вопрос снимаю, --mlist и --flist то что нужно!
Название: Re: chroot2pfs
Отправлено: Ильфат от 28 Ноябрь 2018, 17:20:26
Цитата
-n | -o | --name
3 варианта имхо лишнего. -o и --name наверно хватит. Для -n что-нибудь другое придумаем  :)
Название: Re: chroot2pfs
Отправлено: betcher от 29 Ноябрь 2018, 10:46:47
Берем мелкий трим и делаем из него функцию в pfs, которая принимает один аргумент путь до условного корня.
В mkpfs добавляем ключ -trim, при включении которого перед mksquashfs changes выполняется trim changes.
В chroot2pfs -trim  для mkpfs включаем по умолчанию, с опцией --notrim отключаем.
Скрипт-шаблон из chroot2pfs удаляем.
Вроде сделал. Проверить не успел толком, но селфтест проходит :)
Надо проверять:
mkpfs  с ключем --trim
chroot2pfs с ключем --notrim и без.
И посмотрите какой получился сам  trim в pfs.
Название: Re: chroot2pfs
Отправлено: betcher от 02 Декабрь 2018, 15:07:49
Добавил в селфтест.
Название: Re: chroot2pfs
Отправлено: sfs от 08 Декабрь 2018, 18:13:40
Еще при установке некоторых пакетов добавляются группы и юзера
Похоже - удалять. Иначе перекроют рабочие
Название: Re: chroot2pfs
Отправлено: betcher от 24 Апрель 2019, 19:28:06
Пробовал собирать вмварь плеер чрут2пфсом всплыло две проблемы.
1. Инсталлятор у него гуевый. Чтоб в чруте работали иксовые приложения нужно разрешить это в системе и экспортировать DISPLAY в чруте. То есть в системе:
xhost +local: 
в чруте
export DISPLAY=0:0
перед запуском команды или скрипта.
Стоит ли это встраивать в chroot2pfs? Или пусть юзвери сами разбираются.
2. Инсталлятор вмвари что-то создает в /dev после чего эта папка не отмонтируется из чрута и все висит. Как быть пока не знаю :(
Название: Re: chroot2pfs
Отправлено: sfs от 25 Апрель 2019, 09:19:19
Инсталлятор у него гуевый
Много ли таких прог... Я больше не знаю
Как быть пока не знаю
Ставить в свой фругал дистр и конвертировать в модуль сохраненку
Название: Re: chroot2pfs
Отправлено: betcher от 25 Апрель 2019, 10:06:17
Я имел ввиду, что не знаю как это обходить в чрут2пфс.
Название: Re: chroot2pfs
Отправлено: betcher от 25 Апрель 2019, 10:09:21
А по поводу гуевых инсталляторов тут вот какое дело. Чрут2пфс это же не только для установки софта. Можно гуевый конфигуратор запустить например и сохранить в модуль результаты его работы. Или гуй от ПМ.
Название: Re: chroot2pfs
Отправлено: sfs от 25 Апрель 2019, 10:11:55
Можно гуевый конфигуратор запустить например и сохранить в модуль результаты его работы. Или гуй от ПМ.
По мне - это не нужно.
Особенно конфигуратор. Запускай в системе и сохраняй конфиги
Название: Re: chroot2pfs
Отправлено: sfs от 03 Август 2019, 11:02:06
Текст в help:
Код
--mlist - список модулей и папок для создания aufs, расзделеитель в списке - " ; " или " , " 
Предлагаю замeнить на
Код
--mlist - список модулей и папок для создания aufs, расзделитель в списке -  "," . Слои AUFS в порядке перечисления. Пример : --mlist 1.pfs,/path/2.pfs,/path/dir
Ведь --mlist 1.pfs , 2.pfs не работает. Надо --mlist 1.pfs,2.pfs
Название: Re: chroot2pfs
Отправлено: Pro от 03 Август 2019, 11:04:19
расзделеитель - предлагаю сделать более без ошибок
Название: Re: chroot2pfs
Отправлено: krasnyh от 03 Август 2019, 11:16:02
--mlist - список модулей и папок для создания aufs, расзделеитель в списке - " ; " или " , "
Копирование из старой версии. В новой:
Код
live@prar-1811 $ ./chroot2pfs --help
Usage: chroot2pfs <chroot2pfs keys> <--command>  - command which will be execute in  chroot
chroot2pfs <chroot2pfs keys> <--script> - script which will be copied to chroot and run
chroot2pfs module.pfs  - rebuild module
chroot2pfs keys:
-h | --help - this help
--command  - команда для выполнения в чруте, параметр должен быть последним в строке
--script - скрипт, который будет перенесен в чрут и запущен в нем
-m | --mask - маска для системных бандлов из которых будет создана aufs для chroot
--mlist - список модулей и папок для создания aufs, разделитель в списке - " , "
--flist   - список модулей и папок из файла
-f | --fast - fast compression alg
-n | -o | --name - name for the module (если без расширения pfs, то в папку соберет)
-c | --contaner  Тип виртуализации, доступные варианты  "chroot", "nspawn" (systemd-nspawn)
--notrim  - не удалять заведомо не нужные в модуле файлы (мусор)
--wh - не удалять специальные файлы aufs (тени)
--bind - список каталогов для монтирования в чрут в формате /SOURCE/DIR1::/TARGET/DIR1,/SOURCE/DIR2::/TARGET/DIR2
-X - рарешить подключение к текущей X сессии. Нужно для запуска в чрут приложений с GUI
--nomod - не создавать модуль с изменениями
Название: Re: chroot2pfs
Отправлено: sfs от 03 Август 2019, 11:26:17
Поправил выше
Название: Re: chroot2pfs
Отправлено: sfs от 03 Август 2019, 14:34:21
Предлагаю
Код
#[ "$FLIST" ] && layers="$layers $(cat $FLIST)"
[ "$FLIST" ] && layers="$layers $(grep -v '^#' $FLIST)"
Чтобы можно было такой flist :
Код
#!/bin/sh
#/mnt/home/pra3/modules/lilyterm-p-0.9.9.2-1.pfs
/mnt/home/pra3/optional/_chroot/lxterminal-gtk2.pfs
Т.е. блокировать, разблокировать
#!/bin/sh - чтобы подсветка в mc и пр. работала
Создать список всех модулей в каталоге dir
Код
find  /pth/dir -name *.pfs |sort > flist.lst
С выкл. по умолчанию модулями
Код
find  /mnt/home/prar1801/ -name *.pfs |sort|awk '{print "#"$0}'> flist.lst

Не помешало бы и
Код
--mlist \
1.pfs\
#,2.pfs

Название: Re: chroot2pfs
Отправлено: betcher от 03 Август 2019, 18:07:41
Если ни какое-то серьезное изменение правьте сразу в гит. Чего мелочи то обсуждать. В конце концов не понравится откатим :)
Название: Re: chroot2pfs
Отправлено: sfs от 07 Август 2019, 12:32:34
Не помешало бы и
echo "1,#2,3" | sed 's/#[^,]\+,\?//g; s/,$//'
Название: Re: chroot2pfs
Отправлено: sfs от 07 Август 2019, 16:48:53
https://github.com/pfs-utils/pfs-utils-cli/commit/b2293e7ef85a977d09fae04f71f7e72f56efeac6
Дописал хэлп
Добавил временное блокирование (#) в  mlist flist
Приблокировал trim (для использования в pfs-util v.3) И для v.3 надо в конце скрипта убрать -l (mkpfs -l)

Давно уже запилил для delaufs интревалы, не помню писал сюда или нет. Короче так: delaufs 2 6  удалить со второго по шестой.
delaufs можно перенести из версии 4 в в3 ?
Название: Re: chroot2pfs
Отправлено: betcher от 08 Август 2019, 02:34:51
echo "1,#2,3" | sed 's/#[^,]\+,\?//g; s/,$//'
Это куда?

в конце скрипта убрать -l (mkpfs -l)
-l надо оставить. Здесь создание еще одной ауфс совершенно бессмыслено.
Дописал хэлп
Норм. Еще б на аглицкий перевести.

delaufs можно перенести из версии 4 в в3 ?
Думаю да.
Название: Re: chroot2pfs
Отправлено: sfs от 08 Август 2019, 09:03:28
Это куда?
--mlist - см. 2й пример в chroot2pfs --help
-l надо оставить. Здесь создание еще одной ауфс совершенно бессмыслено.
В в.3 без этого не работает "в папку". Не копал
Еще б на аглицкий перевести.
У нас есть нерус. юзера...? :)
Название: Re: chroot2pfs
Отправлено: betcher от 08 Август 2019, 09:45:47
У нас есть нерус. юзера...?

Скорее всего нет, но не по феншую :)
Название: Re: chroot2pfs
Отправлено: sfs от 08 Август 2019, 09:52:24
Когда появятся - сами и переведут  ;)
Название: Re: chroot2pfs
Отправлено: krasnyh от 14 Август 2019, 00:17:31
Подытожу.
Рабочая версия -8734e71. В b2293e7 не находит исполняемый файл -->     env "pacman2pfs": Нет такого файла или каталога.
Команда может быть любая, если "sudo chroot2pfs --command packer nano", то ошибка -->  env "packer": Нет такого файла или каталога.


p.s. Хотел написать в теме о packer, какие удобства дает тандем chroot2pfs+packer (AUR), и что неплохо бы для этого тандема гуи, а попал на тесты. )
Название: Re: chroot2pfs
Отправлено: betcher от 14 Август 2019, 04:32:14
Чет не пойму что вы хотите получить запуская пакман2пфс в чрут2пфс?
Ошибки возможно связаны с тем, что вы запускаете чрут2пфс с ауфс, попробуйте с папки вне ауфс. Про env... сложно навскидку попробуйте полный путь до исполняемого файла писать.
Название: Re: chroot2pfs
Отправлено: sfs от 14 Август 2019, 09:21:17
что вы хотите получить запуская пакман2пфс в чрут2пфс?
Поддерживаю. Для создания модуля надо chroot2pfs --command pacman ...
Выходную папку обработать trim и руками
packer (компиляция) актуален в chroot2pfs только если надо компилить не в запущенной системе или в запущенной, но с другим набором модулей
Название: Re: chroot2pfs
Отправлено: krasnyh от 14 Август 2019, 10:13:22
Да, с pacman2pfs я погорячился. Давно не пользовался chroot2pfs, раньше я проверял именно с pacman.

С полным путем работает --> sudo chroot2pfs --command /usr/local/bin/packer nano
А pacman работает без полного пути --> sudo chroot2pfs --command pacman -S nano


packer (компиляция) актуален в chroot2pfs только
Он актуален, на мой взгляд всегда, когда используется сохранение в 090-save.

Я packer потому и не пользуюсь (сохранение в модуль), а делаю модули из AUR вручную через makepkg. И отвечая на вопросы форума, так же советую и другим.
А вот если бы было подобие pacman2pfs (.sh) для packer или гуи связка chroot2pfs+packer....(имхо).
Название: Re: chroot2pfs
Отправлено: krasnyh от 14 Август 2019, 10:22:29
Подытожу.
Тогда еще раз подытожу. ) Версия b2293e7 (последняя на сегодня) рабочая. С pacman работает как и раньше  --command pacman -S, для других команд (packer) понадобился полный путь  --command /usr/local/bin/packer.
Название: Re: chroot2pfs
Отправлено: sfs от 14 Август 2019, 10:32:51
делаю модули из AUR вручную через makepkg
А PKGBUILD руками копируете, без packer?
бы было подобие pacman2pfs (.sh) для packer или гуи связка chroot2pfs+packer....(имхо).
1. Собираете пакет любыми средствами (расker asp ..)
2. packman2pfs -U собранный_пакет
Оба действия можно делать в  системе или chroot2pfs
Зачем усложныть?
Название: Re: chroot2pfs
Отправлено: krasnyh от 14 Август 2019, 10:52:38
Иногда без установки зависимостей (makepkg -s) пакет не будет собираться. Вот здесь и  был бы полезен chroot2pfs.
Конечно полученный пакет только для личного использования, т.к. он или будет слишком большой, или там зависимости, присущие только системе данного юзера.


А PKGBUILD руками копируете, без packer?
Да, привык уже через браузер. )
Название: Re: chroot2pfs
Отправлено: sfs от 14 Август 2019, 11:05:39
Иногда без установки зависимостей (makepkg -s) пакет не будет собираться
Обычно собираю модуль из этих зависимостей. Чтобы можно было отключить
привык уже через браузер
Чем packer -G хуже?
Название: Re: chroot2pfs
Отправлено: krasnyh от 18 Август 2019, 23:28:55
По поводу chroot2pfs и delaufs.
Собирал модуль командой chroot2pfs .... --script и по завершении действия все впало в рекурсию:
Цитата
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
При попытке это дело прекратить с pfs delaufs 1, произошла таже история с некоторым различием:
Цитата
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
umount: /mnt/aufs1/dev: target is busy.
devtmpfs /mnt/aufs1/dev devtmpfs rw,nosuid,size=1789292k,nr_inodes=447323,mode=755 0 0
devtmpfs /mnt/aufs1/dev devtmpfs rw,nosuid,size=1789292k,nr_inodes=447323,mode=755 0 0
devtmpfs /mnt/aufs1/dev devtmpfs rw,nosuid,size=1789292k,nr_inodes=447323,mode=755 0 0
devtmpfs /mnt/aufs1/dev devtmpfs rw,nosuid,size=1789292k,nr_inodes=447323,mode=755 0 0
/mnt/aufs1/dev
devtmpfs /mnt/aufs1/dev devtmpfs rw,nosuid,size=1789292k,nr_inodes=447323,mode=755 0 0
devtmpfs /mnt/aufs1/dev devtmpfs rw,nosuid,size=1789292k,nr_inodes=447323,mode=755 0 0

В итоге запустил sudo htop, отследил и убил процесс (был от root). После чего chroot2pfs .... --script завершился, нужная папка была создана.


p.s. Использую последний pfs-utils-cli-4 со всеми фиксами chroot2pfs, mkpfs, pfs.


upd. Еще вопрос по параметру    --wh  - не удалять специальные файлы aufs (тени). Как я понял, по умолчанию теней не должно быть, если только он не указывается специально. Я его не указываю, но тени в созданной папке присутствуют.
Название: Re: chroot2pfs
Отправлено: sfs от 19 Август 2019, 08:44:09
umount: /mnt/aufs1/dev: target is busy.
В соседней (http://forum.puppyrus.org/index.php?topic=21939.30) теме в аналогичной ситуации помогал systemd
Название: Re: chroot2pfs
Отправлено: betcher от 19 Август 2019, 09:20:06
Собирал модуль командой chroot2pfs .... --script
Покажите этот скрипт.
Название: Re: chroot2pfs
Отправлено: krasnyh от 20 Август 2019, 20:46:52
Покажите этот скрипт.
Тот же эффект можно получить запуская chroot2pfs --command. Если же использовать -c nspawn, то команда отрабатывает без ошибок.
Получается так предпочтительнее, хотя sfs когда-то предостерегал использовать nspawn для сборки модулей: 
Для сборки модулей лишнее. Для запуска ПМ достаточно chroot
Такой запуск только привнесет в модуль кэшей
Это уже проги запускать в защищенном окружении. Дома вряд ли надо
Название: Re: chroot2pfs
Отправлено: betcher от 21 Август 2019, 03:07:46
Код
==========================
mkpfs=                  OK
pfsextract simple =     OK
pfsextract -i=          OK
pfsuninstall=           OK
mkpfs merging=          OK
pfsinfo=                OK
(u)mountfile=           OK
pfsload=                OK
pfsunload=              OK
load to ram=            OK
pfsrebuild=             OK
unload ram=             OK
pfsextract=             OK
mkpfs -m=               OK
pfsextract -d=          OK
mkpfs -d=               OK
chroot2pfs=             OK
====== Test finished =====
MagOS devel-tools #
У меня v4 selftest проходит, проверьте у себя.
Название: Re: chroot2pfs
Отправлено: krasnyh от 21 Август 2019, 19:15:16
проверьте у себя.
Скрин.