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

Разработки проекта PuppyRus => PFS-utils => Разработка 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
Есть идея. Предлагаю обмозговать.
Вот так приблизительно может выполняться.
Код
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
Отправлено: ilfat от 21 Ноябрь 2018, 10:08:37
Для сборки модулей обычно удобнее на выходе иметь папку, а не модуль
Если правильно написан скрипт сборки, то почему не удобнее на выходе иметь сразу модуль?
Я думаю, если указано имя без расширения, то mkpfs должен создать папку вместо модуля.
Если не указан -о - на выходе папка chroot2pfs в pwd
С выводом ошибки, если chroot2pfs есть
Можно как в МагОС в утилите syschanges добавлять время, на выходе выглядит так:  syschanges_095705
systemd-nspawn - здесь обсудили. Предлагаю включать по ключу
В принципе он и сейчас по ключу включается, только сейчас именно этот вариант по умолчанию. Я так понял поведение по умолчанию можно будет вывести в конфиг. Ну тут Александр подскажет.
Название: Re: chroot2pfs
Отправлено: ilfat от 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
Отправлено: ilfat от 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
Отправлено: ilfat от 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
Отправлено: ilfat от 22 Ноябрь 2018, 19:10:12
chroot2pfs -o module.xzm --command urpmi nano && ln -s  /usr/bin/nano /bin/nano # не проверено
Так не работает. Все что после && это следующая команда. С кавычками, в том числе со строгими, тоже не работает. Если нужно в чрут передать более одной команды используется --script.
Название: Re: chroot2pfs
Отправлено: ilfat от 22 Ноябрь 2018, 19:13:23
А ну да - ; же. С запятой наверное можно без кавычек.
Лучше юзать запятую, по крайней мере в шеллах, проблем меньше))
Название: Re: chroot2pfs
Отправлено: betcher от 22 Ноябрь 2018, 19:19:10
Так не работает
А если в круглых скобках ?
Название: Re: chroot2pfs
Отправлено: ilfat от 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
Отправлено: ilfat от 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
Отправлено: ilfat от 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
Отправлено: ilfat от 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
Отправлено: ilfat от 22 Ноябрь 2018, 22:33:32
Наверно тогда, чтобы чрут считал эту команду скриптом и запускал внутри?
В чем проблема просто взять и использовать --script? :)
Название: Re: chroot2pfs
Отправлено: sfs от 23 Ноябрь 2018, 09:07:41
С запятой наверное можно без кавычек.
Да. Предлагаю убрать ; - лишние проблемы

spawn по дефолту уже убрали?
Думаю шаблон нужно делать под "непервый" модуль. Для первого придется немного исправлять скрипт
Вряд ли это возможно универсально
Под каждый ПМ будет свое.
Думаю надо остановиться на том, что 1й модуль собирается другими средствами
Название: Re: chroot2pfs
Отправлено: ilfat от 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
Отправлено: ilfat от 27 Ноябрь 2018, 17:19:54
То есть встроенный скрипт копируется в чрут (как --script), после чего в него второй строкой после ша-банг вставляется команда которую мы передали chroot2pfs. То есть и выполнение команды и очистка чрута перед mkpfs.
Я не совсем уловил мысль.
Название: Re: chroot2pfs
Отправлено: ilfat от 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
Отправлено: ilfat от 27 Ноябрь 2018, 17:57:52
У нас есть встроенный скрипт.
Это который trim?
Название: Re: chroot2pfs
Отправлено: betcher от 27 Ноябрь 2018, 18:02:53
Это который trim?
Ну пока еще нет, но по замыслу - да. Укороченный только.
Название: Re: chroot2pfs
Отправлено: ilfat от 27 Ноябрь 2018, 18:11:05
Мы копируем скрипт  в чрут и записываем в него команду.
А в чем разница между выполнить команду urpmi nano в чруте, а за ней выполнить встроенный скрипт? Какую пользу мы получим встраивая нашу команду в этот скрипт?
Название: Re: chroot2pfs
Отправлено: ilfat от 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
Отправлено: ilfat от 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
Отправлено: ilfat от 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
Отправлено: ilfat от 28 Ноябрь 2018, 13:48:56
--trim trim.sh, где trim.sh альтернативный трим
Единственное надо будет учитывать, что все пути должны начинаться без первого слэша. Поэтому ваш расширенный трим возможно без доработки не подойдёт, не смотрел как он устроен.
Название: Re: chroot2pfs
Отправлено: sfs от 28 Ноябрь 2018, 13:49:49
Перебор, не?
да
Название: Re: chroot2pfs
Отправлено: ilfat от 28 Ноябрь 2018, 13:51:11
Никто и не спорит. Меня устраивает
Просто вы написали, что вам второй трим надо прогонять. Не так понял видимо.
Название: Re: chroot2pfs
Отправлено: ilfat от 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
Отправлено: ilfat от 28 Ноябрь 2018, 14:12:03
Ну так соберу -o папка и буду гонять в ней что захочу   
Ну вот всё руками хотите делать ;) chroot2pfs предлагает полную автоматизацию сборки модуля для его пересборки в дальнейшем одной командой: chroot2pfs ваш-модуль.xzm
Название: Re: chroot2pfs
Отправлено: betcher от 28 Ноябрь 2018, 14:23:47
Большой трим тоже будет доступен в чруте если модуль в котором он лежит подключается (по маске). Так что этот трим можно использовать внутри скрипта (--script) я думаю. Имею ввиду в пра.
Название: Re: chroot2pfs
Отправлено: ilfat от 28 Ноябрь 2018, 17:00:26
Нужен инструмент (читай опция) для копирования локальных папок и файлов в чрут. Пример, у меня есть rpm файл, мне нужно создать модуль  установив в чруте этот самый rpm. Как мне перенести его туда?
P.S. Вопрос снимаю, --mlist и --flist то что нужно!
Название: Re: chroot2pfs
Отправлено: ilfat от 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
проверьте у себя.
Скрин.
Название: Re: chroot2pfs
Отправлено: krasnyh от 15 Апрель 2020, 10:50:45
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
Есть идея. Предлагаю обмозговать.
Вот так приблизительно может выполняться.
Куда-то бесследно переехало все, связанное с утилитами v4. Нерабочие ссылки.

В нашей вики (http://wiki.puppyrus.org/puppyrus/pr218/pfs4) тоже куцая информация.
Название: Re: chroot2pfs
Отправлено: betcher от 15 Апрель 2020, 11:05:31
В мастер :)
Название: Re: chroot2pfs
Отправлено: krasnyh от 13 Ноябрь 2020, 19:21:00
Говорилось как-то, что chroot2pfs позволяет обновлять модули. Непонятна реализация. Если с pfsrebuild так (предварительно разморозив репу) :
sudo pacman -S nano && sudo pfsrebuild nano.pfs

То в случае с chroot2pfs, так?
sudo chroot2pfs -m nano.pfs --command 'sudo pacman -S nano'
Ведь новые изменения должны объединиться со старыми. Или расчет на то, что в chroot будет создан абсолютно новый самодостаточный модуль, который просто не знает о наличии старой версии и тогда правильно будет типа:
chroot2pfs -o nano.pfs -m "^[1-4].*" --command 'sudo pacman -S nano'
И затем просто заменить старую версию.
?


В шапке темы нет примера обновления отдельного модуля.
Название: Re: chroot2pfs
Отправлено: betcher от 14 Ноябрь 2020, 05:54:49
Да, логика такая как вы описали. Сохраняется строка с которой вы собирали, плюс сохранится скрипт если не --command, а --script. Таким образом вы правы на счет маски. В магос мы стараемся не сохранять в модулях базу ПМ по этому и не обратил внимания. Наверное стоит дописать в вашу вики.
Название: Re: chroot2pfs
Отправлено: sfs от 02 Март 2021, 09:14:51
В свете продолжения развития overlayfs - не добавить ли его в chroot2pfs ...
Возможно, это будет решением с невозможностью горячего overlayfs подключения модулей
Выше с ауфс получалось запустить в chroot2pfs окружении Х-овые проги. Если и здесь получится - лучше чем ничего. Только, наверное,  вылезут побочки типа неработающего буфера и т.п.
Название: Re: chroot2pfs
Отправлено: betcher от 02 Март 2021, 11:45:20
Это даже не костыль, это инвалидная коляска. Проще pfsextract -i допилить для оверлея, а может и сразу заработает.
Название: Re: chroot2pfs
Отправлено: betcher от 02 Март 2021, 14:17:08
Не понял связи...
Может я тогда задачу не понял :)
pfsextract -i nano.pfs
nano
Разве не запустится nano?
Или что вы хотели?
Название: Re: chroot2pfs
Отправлено: DdShurick от 02 Март 2021, 14:53:48
pfsextract -i nano.pfs
nano
Разве не запустится nano?
Как в tinycore? Распаковываем в корень и запускаем? Это наиболее простой вариант, но требует памяти.
Sfs имеет в виду другой вариант:
Код
mount -o loop program.pfs dir
chroot dir
./program
Памяти потянет намного меньше, но изврат... Вот до чего доводит заимствование чужих ядер. Зачем обижал Pro?
Название: Re: chroot2pfs
Отправлено: krasnyh от 02 Март 2021, 15:05:30
Скорее так, но это надо допиливать скрипт:
chroot2pfs -X приложение.pfs


Цитата
chroot2pfs --help
-X    - рарешить подключение к текущей X сессии. Для запуска в chroot приложений с GUI. Рекомендуется использовать с "-c nspawn"
Ядро хост-системы должно быть одинаковой архитектуры (i686 или x86_64) c гостевой. Самв хост-система может быть любой

Выше с ауфс получалось запустить в chroot2pfs окружении Х-овые проги.
Название: Re: chroot2pfs
Отправлено: sfs от 03 Март 2021, 09:51:53
Может я тогда задачу не понял
Каким-то образом сделать запуск подключенных по горячему модулей на модульном фругале, собранном на overlayfs
Вижу 2 варианта :

1. Симлинковый : Делать симлинки в корень примонтированного сквоша. Как в tinycore
Плюсы - просто, без засад
Минусы - надо как-то чистить эти симлинки. Если сохраненка в память - можно не париться
Можно написать скрипт который при старте системы ищет и удаляет все битые симлинки
Кстати - как эта проблема решается в tinycore - не смотрел. А надо бы

2. overlay контейнерный : Типа
chroot2pfs -X приложение.pfs
Для каждого модуля при горячем подключении собирать из тех же модулей, что собрана система новый корень - абсолютно такой же как текущий и из него запускать
Плюсы - ничего не надо чистить при отключении (если примонтировано в tmp).
Минусы : Каждый слой overlay ест память . Меньше , чем ауфс (1,5мб на слой), но При аналогичном ауфс подключении сформируется 1 слой, а тут все слои по новой. Возможно такое как-то оптимизировано в overlay (надо экспериментировать)
Что делать с верхним слоем контейнера... Можно при отключении скопировать в корень
Контейнер это все-таки контейнер. Будут сложности при взаимодействии с основной системой. Пита буфер обмена вряд ли будет работать и еще что-нибудь подобное вылезет

По итогу - 1 проще и менее ресурсоемко
Ктоме того такую методу можно применять и вместо ауфс (напроимер на системах, где надо жестко экономить память) . На фул
И ядро нужно только с поддержкой squashfs
Т.е. переделать pfsextract -i c копирования на симлинки + написать на find уборжик мусора

Есть другие мнения?

Как в tinycore? Распаковываем в корень и запускаем? Это наиболее простой вариант, но требует памяти.
Да, Но там симлинки , а не копирование. Симлинки места почти не занимают
Sfs имеет в виду другой вариант:
Вар.2 - да. Чото сложно уже на старте
Вот до чего доводит заимствование чужих ядер
Какая связь с ядрами... ? сейчас с ауфс на пк проблем нет. Автор ауфс-патча приостанавливал работу из-за занятости. А если бросит... Вряд ли Pro потянет такое подхватить...
Название: Re: chroot2pfs
Отправлено: betcher от 03 Март 2021, 10:55:43
Минусы : Каждый слой overlay ест память . Меньше , чем ауфс (1,5мб на слой), но При аналогичном ауфс подключении сформируется 1 слой, а тут все слои по новой. Возможно такое как-то оптимизировано в overlay (надо экспериментировать)
В отличии от aufs оверлей может включать в качестве слоя другой оверлей, то есть можно пробовать делать для чрута lowerdir="/", хотя так наверное рекурсию словим. Или chroot / как-то.
Название: Re: chroot2pfs
Отправлено: sfs от 27 Май 2021, 15:53:19
./chroot2pfs -o nano.xzm -m "^[1-4].*"--command urpmi nano
подключит в чрут только те из модулей, названия которых  начинаются на 1, 2, 3 или 4
В --help
Цитата
-m | --mask    - маска для системных бандлов из которых будет создана aufs для chroot"
Пока не залез на форум, не понял, как работает

Может так :
Код
echo "Варианты перечисления слоев aufs для сборки корня chroot:"
echo "-m | --mask - регулярное выражение (подставляется в egrep) применяемое для названий уже загруженных модулей
  Примеры (модули, начинающиеся с 001 по 003):
  -m "^00[1-3].*"
  -m "^(001|002|003).*""
echo "--mlist - перечисление модулей или каталогов"
echo "  В списке можно применять \"#\" для блокирования. Пример : --mlist 1.pfs,#2.pfs,3.pfs "
echo "--flist - список из файла. В файле можно применять \"#\" для блокирования"
echo "  Создать список из модулей в каталоге dir: find  /pth/dir -name *.$EXT |sort |awk '{print \"#\"$0}' > flist.lst"

И изменить в 68 строке grep "$MASK" на grep -E "$MASK" иначе придется -m "^\(001\|002\|003\).*""
Название: Re: chroot2pfs
Отправлено: betcher от 27 Май 2021, 15:58:24
применяемое для названий уже загруженных модулей
Насколько помню речь именно о бандлах там. То есть "применяемое для точек монтирования загруженных модулей", но лучше код глянуть конечно.
Название: Re: chroot2pfs
Отправлено: sfs от 27 Май 2021, 16:27:41
Сейчас
Цитата
"-m | --mask    - маска для системных бандлов из которых будет создана aufs для chroot"
А что такое "бандл" ? Слой aufs (папка сквош или fs-in-file) ?  Тогда надо про это написать
У меня тоже не идеально.
Название: Re: chroot2pfs
Отправлено: sfs от 27 Май 2021, 16:39:50
Посмотрел - в вики только ссылка на эту тему. Надо бы доку написать. Иначе в массы не пойдет...
Название: Re: chroot2pfs
Отправлено: sfs от 27 Май 2021, 17:55:32
Добавил примеров (https://wiki.puppyrus.org/puppyrus/pr218/pfs4?&#chroot2pfs)
А начиналось, с того что я попытался chroot2pfs --mlist из используемых модулей - обломался и хотел написать типа chroot2pfs -m. Вскрытие показало, что уже все написано. Поэтому добавил в вики
Понятно написал?
Полноценная дока по chroot2pfs все равно нужна
Название: Re: chroot2pfs
Отправлено: betcher от 27 Май 2021, 19:03:09
А что такое "бандл"
Слой ауфс. То есть точка монтирования чего нибудь, которая становится слоем корневой ауфс.
То есть я имел в виду, что когда вы указываете маску поиск.идет среди бандлов и в новую ауфс монтируются уже созданные бандлы, а не модули.
Название: Re: chroot2pfs
Отправлено: betcher от 27 Май 2021, 19:07:25
По egrep - согласен. Более того код который обрабатывает --mask заимствовал в urpm2xzm и там egrep. Не знаю где "е" потрял ))
Название: Re: chroot2pfs
Отправлено: betcher от 27 Май 2021, 19:21:24
Полноценная дока по chroot2pfs все равно нужна
Нужна конечно. Доки это самое скучное вэнашем деле...
З.Ы. Посмотрите может заинтересует. Справочная система для консоли, сделана для росы, но все свободно можно под себя переделать.
https://github.com/betcher/termhelper
Название: Re: chroot2pfs
Отправлено: sfs от 28 Май 2021, 15:36:13
Бандл (https://ru.wikipedia.org/wiki/%D0%91%D0%B0%D0%BD%D0%B4%D0%BB_(%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F)) - как-то не в тему
https://github.com/betcher/termhelper
Это вместо man или какая задумка?
Название: Re: chroot2pfs
Отправлено: sfs от 28 Май 2021, 16:47:17
Написал по мотивам встроенного хэлпа
https://wiki.puppyrus.org/puppyrus/pr218/pfs4?&#chroot2pfs
Сделал более логично и структурированно . Хорошо бы теперь так хэлп переделать

–bind  - сам не понял что и для чего. напишите здесь подробнее
Название: Re: chroot2pfs
Отправлено: krasnyh от 28 Май 2021, 17:08:53
–bind  - сам не понял что и для чего
Наверно это некий аналог uird.mounts (https://github.com/neobht/uird/blob/master/i18n/usr/share/uird.help/ru_RU.UTF-8/uird.mounts.help).

Цитата
Пример:
uird.mounts=/dev/sda3/MagOS-Data/opt::MNT=/opt;/MagOS-Data/myfolder::MNT=/opt/myfolder::MNT_OPTS=ro+noexec
Такая запись означает: монтировать каталог /MagOS-Data/opt, расположенный на носителе /dev/sda3 в /opt,
монтировать каталог /MagOS-Data/myfolder, найденный на одном из дисковых разделов, в /opt/myfolder
с дополнительными параметрами монтирования ro и noexec
Название: Re: chroot2pfs
Отправлено: betcher от 28 Май 2021, 17:16:30
Наверно это некий аналог uird.mounts.
Ну в целом да.
Допустим у вас есть локальный пакет rpm, у него есть зависимости которые разрешаются из репы. Нам нужно собрать модуль с пакетом и его реквайерами. Так вот --бинд нужен чтоб сам этот пакет пропихнуть в чрут.
Название: Re: chroot2pfs
Отправлено: sfs от 31 Май 2021, 10:15:44
Переписал -bind
Цитата
–bind - Монтирование дополнительных слоев AUFS. Список каталогов в формате /dev/sda3/SOURCE/DIR1::/TARGET/DIR1,/SOURCE/DIR2::/TARGET/DIR2 (монтировать каталог /dev/sda3/SOURCE/DIR1, расположенный на носителе /dev/sda3 в /opt ; монтировать каталог /SOURCE/DIR2, найденный на одном из дисковых разделов, в /TARGET/DIR2)
А параметры монтирования и сетевые источники можно? Т.е. полный аналог uird.mounts.?
Может просто написать - аналог uird.mounts  и дать ссылку?
Допустим у вас есть локальный пакет rpm
Можно пример конфига
Название: Re: chroot2pfs
Отправлено: betcher от 31 Май 2021, 10:49:51
–bind - Монтирование дополнительных слоев AUFS.
Не, не так. Они не в ауфс монтируются. Папка в системе биндится в папку в ауфс. Не слой это то есть. И поиска как в уирд там нет. Нужно конкретно указать обе папки, системная при этом должна существовать.
Название: Re: chroot2pfs
Отправлено: sfs от 31 Май 2021, 10:55:04
Папка в системе биндится в папку в ауфс
Т.е. монтируется в корень chroot ?
Название: Re: chroot2pfs
Отправлено: betcher от 31 Май 2021, 11:00:23
Блин, как объяснить то )
chroot2pfs -o qqq.xzm --bind ./::/tmp/bind --command urpmi /tmp/bind/qqq.rpm

Создается ауфс из бандлов, текущая папка монтируется в ауфс/tmp/bind и устанавливается qqq.rpm из /tmp/bind, то есть из текущей папки. В модуле будет установленный локально qqq.rpm и все его зависимости и репы.
Название: Re: chroot2pfs
Отправлено: sfs от 31 Май 2021, 11:27:21
Переписал -bind в вики. теперь норм?
Название: Re: chroot2pfs
Отправлено: betcher от 31 Май 2021, 11:57:47
Это вместо man или какая задумка?
Не заметил сразу, что ответили.
От мана отличается тем, что тут сборники рецептов, а не описание ключей. И тем что каталогизировано, не обязательно знать название чтоб получить хелп, можно добраться по смыслу. Ну и все по русски.
Новые файлы хелпов легко добавляются в каталогизатор. Нужно только правильно назвать сам файл. То есть, например,  каждый pfs модуль может иметь свой хелп, и этот хелп попадет в нужное место каталога.
Сами файлы хелпов выполняются внутри sh, то есть можно делать выхлоп зависимо от условий. Например сейчас у росы на платформе 2016.1 хелпы будут предлагать urpmi имя-проги, а на платформе 2019.1 dnf install имя-проги.
Для удобства форматирования хелпов, кроме echo и printf тобавлено две встроенные функции.
+ Заголоовок
_ "первый столбец" "второй столбец"

Знание языков разметки не нужно, только баш и эти пару функций.
Название: Re: chroot2pfs
Отправлено: betcher от 31 Май 2021, 12:03:11
Переписал -bind в вики. теперь норм?
Еще немного и мы у цели ))
Все норм, кроме того, что путь надо указывать просто от корня, /dev/sda3/dir не будет работать и не думаю что это нужно делать.
Название: Re: chroot2pfs
Отправлено: sfs от 31 Май 2021, 13:07:27
От мана отличается тем, что тут сборники рецептов
Который надо написать самому? Делаю упор на вики. Еще что-то не потянуть. помощников мало
путь надо указывать просто от корня, /dev/sda3/dir
Поправил. Это передрано было с uird
Цитата
Список каталогов  в формате /SOURCE/DIR1::/TARGET/DIR1,/SOURCE/DIR2::/TARGET/DIR2 (монтировать каталог /SOURCE/DIR1, расположенный на хост-системе в /TARGET/DIR1 на гостевой ).
Название: Re: chroot2pfs
Отправлено: betcher от 31 Май 2021, 14:02:53
Который надо написать самому? Делаю упор на вики.
В общем да, что-то уже есть, остальное самим. Можно попробовать конвертить с вики автоматом.

По описанию chroot2pfs --bind в вики - норм.
Название: Re: chroot2pfs
Отправлено: sfs от 31 Май 2021, 14:15:40
Тогда может поправите в гите хелп egrep и орфографию?
Название: Re: chroot2pfs
Отправлено: betcher от 31 Май 2021, 15:50:07
хелп
В хелпе что надо, напомните.
Название: Re: chroot2pfs
Отправлено: sfs от 31 Май 2021, 15:51:30
То, что сейчас в вики
Название: Re: chroot2pfs
Отправлено: betcher от 31 Май 2021, 15:54:51
То, что сейчас в вики
Для chroot2pfs --bind?
Название: Re: chroot2pfs
Отправлено: sfs от 31 Май 2021, 17:02:29
Все из раздела вики chroot2pfs
Чего экономить  ;)
Название: Re: chroot2pfs
Отправлено: betcher от 31 Май 2021, 19:46:14
Ок ))
Остальное сделал, селфтест проходит, но надо бы потестить. Некоторые ошибки были в именах переменных.
З.Ы. И опять забыл про бранч, все в пфсгет. Надо бы слить его в v4.Или v5 из него сделать.
Название: Re: chroot2pfs
Отправлено: sfs от 01 Июнь 2021, 09:01:48
Нашел только egrep (https://github.com/pfs-utils/pfs-utils-cli/commit/7afa887f60ad0c81e3f1083d5cb84b6dabfeea4b) , а текст хэлпа?
Название: Re: chroot2pfs
Отправлено: betcher от 01 Июнь 2021, 10:18:30
Остальное сделал,
"Остальное" это очепятки и egrep, хелпы еще не делал.