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

Разработки проекта PuppyRus => PFS-utils => Разработка PFS и Initrd => Разработка PFS-utils v.3 (устаревшая) => Тема начата: krasnyh от 16 Май 2019, 16:19:11

Название: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 16:19:11
И все-таки не помешало бы настроить pfsrebuild до рабочего состояния.
Ему не хватает для нормальной работы списков файлов в модуле.

Например.
1. Время от времени приходится пересобирать youtube-dl_any-sf02. Это важно, т.к. ютуб часто меняет код, и соответственно часто обновляется youtube-dl.
2. Так же иногда приходится пересобирать и 083-firefox-profile_any.
 Конечно у меня эти модули лежат уже распакованные в своих директориях, остается только поменять начинку и ПКМ по папке - Открыть - Упаковка PFS-пакета.

С pfsrebuild можно было бы через youtube-dl-update скачивать youtube-dl сразу в /usr/local/bin. А потом:
Цитата
pfsrebuild youtube-dl_any-sf02.pfs
Так же  и с профилем браузера:
Цитата
pfsrebuild 083-firefox-profile_any.pfs


upd. Или сделать, чтобы pfsrebuild сам выстроил этот список при первом запуске.
Все же применение pfsrebuild будет полезно для 2-3 модулей и нет необходимости переделывать все модули в PRA под него.
Название: Re: pfsrebuild
Отправлено: sfs от 16 Май 2019, 17:01:40
Не пользуюсь pfsrebuild. Мне удобнее - распаковать - изменить - запаковать
Он сейчас не работает во всез пра?
сделать, чтобы pfsrebuild сам выстроил этот список при первом запуске.
так бы лучше
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 17:12:42
Поясните о каком списке речь. Что-то не пойму.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 17:19:49
Поясните о каком списке речь. Что-то не пойму.
Конечно, может я как-то не так выразил мысль. Скажу проще - pfsrebuild не работает.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 17:24:49
На примере youtube-dl_any-sf02.pfs
Код
live@prar-1811 ../memory/images/youtube-dl_any-sf02.pfs % find .
.
./etc
./home
./home/live
./home/live/.qmplay2
./home/live/.qmplay2/youtube-dl
./start.sh
./usr
./usr/bin
./usr/bin/youtube-dl
./usr/bin/youtube-dl-update
./usr/local
./usr/local/bin
./usr/local/bin/python

Код
% sudo pfsrebuild youtube-dl_any-sf02
/mnt/bundles1/youtube-dl_any-sf02
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on youtube-dl_any-sf02.pfs, block size 524288.


Exportable Squashfs 4.0 filesystem, xz compressed, data block size 524288
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 0.17 Kbytes (0.00 Mbytes)
108.86% of uncompressed filesystem size (0.15 Kbytes)
Inode table size 34 bytes (0.03 Kbytes)
100.00% of uncompressed inode table size (34 bytes)
Directory table size 0 bytes (0.00 Kbytes)
-nan% of uncompressed directory table size (0 bytes)
Number of duplicate files found 0
Number of inodes 1
Number of files 0
Number of fragments 0
Number of symbolic links  0
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Создался пустой модуль.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 17:26:02
А в  v4 не проверяли? Мало вероятно, что я его нерабочим бросил.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 17:27:44
По ошибкам судя не находит бандл. А он есть?
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 17:34:08
По ошибкам судя не находит бандл. А он есть?
Встречный вопрос, а он когда то был? )
Код
live@prar-1811 /mnt % ls -la 
итого 12
drwxr-xr-x   8 root root  180 мая 16 17:30 .
drwxrwxrwx 159 root root  260 мая 16 13:06 ..
lrwxrwxrwx   1 root root    9 мая 15 20:17 home -> /mnt/sda1
drwxr-xr-x  18 root root  480 мая 15 20:17 live
drwxr-xr-x   6 root root 4096 апр 17 22:07 sda1
drwxr-xr-x   4 root root 4096 фев 25 18:17 sda2
drwxr-xr-x  35 live root 4096 мая 13 19:36 sda3
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:03:22
Это в магос. Правда v4 у нас.
pfsrebuild 88-magos.xzm
/memory/bundles1/88-magos
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on 88-magos.xzm, block size 524288.
[===================================================================================================================================|] 1684/1684 100%

Exportable Squashfs 4.0 filesystem, lzo compressed, data block size 524288
        compressed data, compressed metadata, compressed fragments, compressed xattrs
        duplicates are removed
Filesystem size 9339.46 Kbytes (9.12 Mbytes)
        55.51% of uncompressed filesystem size (16824.70 Kbytes)
Inode table size 26957 bytes (26.33 Kbytes)
        40.36% of uncompressed inode table size (66788 bytes)
Directory table size 24502 bytes (23.93 Kbytes)
        43.21% of uncompressed directory table size (56711 bytes)
Number of duplicate files found 372
Number of inodes 2065
Number of files 1674
Number of fragments 19
Number of symbolic links  44
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 347
Number of ids (unique uids + gids) 7
Number of uids 5
        root (0)
        nx (479)
        betcher (500)
        unknown (10000)
        systemd-network (498)
Number of gids 5
        root (0)
        pdnsd (474)
        betcher (500)
        users (100)
        unknown (498)

Встречный вопрос, а он когда то был?
Префикс для бандлов задается в pfs, если есть файл /etc/initvars, то префикес будет $SYSMNT/bundles
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:10:51
Префикс для бандлов задается в pfs, если есть файл /etc/initvars
Никогда не видел такой файл. Может раньше и был, а сейчас /etc или пустой, или там собственные настройки приложения, или этой директории вообще нет.


upd. Что-то поменялось в нашем 'царстве', причем давно.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:16:52
Если файла /etc/initvars нет, то префикс должен быть
prefixmp="/mnt/."
То есть бандлы должны лежать в /mnt и начинаться с точки. Это ваш стандарт, паппирус. 
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:18:06
Зато во всех PRA есть директория /mnt/live/memory/images
Там папки со всеми вложениями.
Скрин.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:19:20
То есть бандлы должны лежать в /mnt и начинаться с точки. Это ваш стандарт, паппирус
Но их нет.

upd Они есть только при горячем подключении модулей.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:20:29
покажите кусок из выхлопа aufs-n
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:24:26
PRA6408-1904
Скрин.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:33:46
Создайте файл /etc/pfs.cfg и запишите в него строку
prefixmp="/mnt/live/memory/images/"
После попробуйте еще раз pfsrebuild
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:38:46
Создайте файл /etc/pfs.cfg и запишите в него строку
Я могу проверить конечно, но что дальше? Мне сомнительно, что sfs захочет переделывать такое количество модулей?

upd. Или сделать, чтобы pfsrebuild сам выстроил этот список при первом запуске.
Все же применение pfsrebuild будет полезно для 2-3 модулей и нет необходимости переделывать все модули в PRA под него.
    сделать, чтобы pfsrebuild сам выстроил этот список при первом запуске.

так бы лучше
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 18:40:58
Вы совершенно не о том говорите. Никакие модули переделывать не надо. У вас не правильно работают pfs утилиты потому, что не знают где искать бандлы. Что то поменялось, а утилиты то и не в курсе. Посмотрю позже может в других местах расположение бандлов подругому определяется из aufs-n например.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 18:56:19
Создайте файл /etc/pfs.cfg и запишите в него строку
Код
% sudo pfsrebuild youtube-dl_any-sf02
/mnt/bundles1/youtube-dl_any-sf02
Parallel mksquashfs: Using 4 processors
Creating 4.0 filesystem on youtube-dl_any-sf02.pfs, block size 524288.
[=============================================================================/] 8/8 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 1620.73 Kbytes (1.58 Mbytes)
93.99% of uncompressed filesystem size (1724.42 Kbytes)
Inode table size 278 bytes (0.27 Kbytes)
54.62% of uncompressed inode table size (509 bytes)
Directory table size 238 bytes (0.23 Kbytes)
76.04% of uncompressed directory table size (313 bytes)
Number of duplicate files found 0
Number of inodes 15
Number of files 5
Number of fragments 1
Number of symbolic links  1
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 9
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Сработало
Код
% du youtube-dl_any-sf02
4 youtube-dl_any-sf02/home/live/.qmplay2
8 youtube-dl_any-sf02/home/live
12 youtube-dl_any-sf02/home
8 youtube-dl_any-sf02/etc
8 youtube-dl_any-sf02/usr/local/bin
12 youtube-dl_any-sf02/usr/local
1732 youtube-dl_any-sf02/usr/bin
1748 youtube-dl_any-sf02/usr
1776 youtube-dl_any-sf02

Вы совершенно не о том говорите
Возможно я неправильно выражаюсь по форме проблемы, но я прав по ее духу. :)
Если возникнет необходимость чего-то добавить в модули, то здесь проблема в лице sfs и необходимых трудочасов. :)


upd.
Никакие модули переделывать не надо.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 19:16:32
Возможно я неправильно выражаюсь по форме проблемы, но я прав по ее духу. :)
:)
Если возникнет необходимость чего-то добавить в модули, то здесь проблема в лице sfs и необходимых трудочасов. :)
Добавьте этот /etc/pfs.cfg в сборку. Даже если конкретно для prefixmp позже будет не нужен,  то все равно полезный. Сжатие например задавать можно.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 19:24:40
Сжатие например задавать можно.
Можно узнать все параметры которые можно задать через /etc/pfs.cfg

если найду скрипт , который папку пра со всеми модулями перепакует, то  попробую, а вручную каждый - не эффективно.
С помощью pfsrebuild и /etc/pfs.cfg возможно перепаковать все модули в директории с нужным сжатием?

Или есть какой-то специализированный скрипт?

p.s. Вроде в PRA, что-то есть если не ошибаюсь. Вроде видел, поискал по форуму, ничего не нашел.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 19:36:52
Если возникнет необходимость чего-то добавить в модули, то здесь проблема
Поправка.
Если разовое добавление и не в каждый модуль, то проблемы не будет.
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 19:46:46
С помощью pfsrebuild и /etc/pfs.cfg возможно перепаковать все модули в директории с нужным сжатием?
Для этого достаточно mkpfs в цикле запустить. Указывать сжатие в /etc/pfs.cfg имеет смысл если всегда используете "недефолтное" сжатие. К примеру у меня lzo работает быстрее чем дефолтный xz и я использую его.
Вот мой.
PFSDIR=/var/lib/packages
EXT=xzm
. /usr/lib/magos/os-config
. /etc/sysconfig/MagOS
compression="$MKSQFS_OPTS"
compression_fast="$MKSQFS_FASTALG"

Сделано так, чтоб можно было задавать compression_fast и compression из MagOS.ini
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 20:12:50
Для этого достаточно mkpfs в цикле запустить.
Никак не могу сообразить как это будет выглядеть. )
Код
for n in {1..5}; do <КОМАНДА>; done
?
Название: Re: pfsrebuild
Отправлено: betcher от 16 Май 2019, 20:20:57
Зачем цифры?
for mod in $( ls -1 |grep pfs$) ; do
mkpfs $mod -o new_$mod
done
Типа такого. Это если все в одной папке. Если в разных, то можно с find.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 20:31:13
Да, работает.
ШАМАНЯ интересовался с целью перепаковать модули с легким алгоритмом сжатия
Цитата
mkpfs --help
-f / --fast - быстрая компрессия (размер .pfs больше, но создается быстрее).

Поэтому наверно так?
Цитата
for mod in $( ls |grep pfs$) ; do mkpfs -f $mod -o new_$mod; done
Название: Re: pfsrebuild
Отправлено: k0l0p0k от 16 Май 2019, 20:41:17
 mkpfs --help
..
--mksqfs / параметры для mksquashfs, компрессия размер блока и проч.(Внимание параметр должен быть последним)
можно наверное точнее сжатие подобрать?
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 20:44:22
PFSDIR=/var/lib/packages
EXT=xzm
. /usr/lib/magos/os-config
. /etc/sysconfig/MagOS
compression="$MKSQFS_OPTS"
compression_fast="$MKSQFS_FASTALG"
В принципе здесь вся инфа об этом Терминология и спецификации формата PFS (http://wiki.puppyrus.org/puppyrus/pr218/pfs3#терминология_и_спецификации_формата_pfs)
Название: Re: pfsrebuild
Отправлено: k0l0p0k от 16 Май 2019, 21:07:13
Код
#!/bin/sh
mkdir /tmp/pfs-new
for modul in $( ls -1 /mnt/live/memory/images | egrep '^00') ; do
echo $modul
mkpfs /mnt/live/memory/images/$modul -o /tmp/pfs-new/$modul  --mksqfs -comp lz4
done
потестил на трех  00**.pfs  ( egrep '^00' )
компрессия lz4 , на самом деле быстрая, секунд пять скрипт работал
но модули "распухают" раза в два  :)
Код
sudo ./repackpfs 
mkdir: невозможно создать каталог «/tmp/pfs-new»: Файл существует
000-kernel-4.4.1-pf3.pfs
/mnt/bundles1/000-kernel-4.4.1-pf3.pfs
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /tmp/pfs-new/000-kernel-4.4.1-pf3.pfs, block size 131072.
[===========================================================================================================|] 2450/2450 100%

Exportable Squashfs 4.0 filesystem, lz4 compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 26623.95 Kbytes (26.00 Mbytes)
51.99% of uncompressed filesystem size (51207.13 Kbytes)
Inode table size 37231 bytes (36.36 Kbytes)
41.03% of uncompressed inode table size (90747 bytes)
Directory table size 42442 bytes (41.45 Kbytes)
69.84% of uncompressed directory table size (60772 bytes)
Number of duplicate files found 0
Number of inodes 2814
Number of files 2338
Number of fragments 307
Number of symbolic links  3
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 473
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
001-ddr01-sf17.pfs
/mnt/bundles1/001-ddr01-sf17.pfs
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /tmp/pfs-new/001-ddr01-sf17.pfs, block size 131072.
[=========================================================================================================/] 11245/11245 100%

Exportable Squashfs 4.0 filesystem, lz4 compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 122985.88 Kbytes (120.10 Mbytes)
51.27% of uncompressed filesystem size (239899.77 Kbytes)
Inode table size 217702 bytes (212.60 Kbytes)
42.53% of uncompressed inode table size (511880 bytes)
Directory table size 197517 bytes (192.89 Kbytes)
63.73% of uncompressed directory table size (309952 bytes)
Number of duplicate files found 703
Number of inodes 14362
Number of files 10109
Number of fragments 607
Number of symbolic links  2802
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 1451
Number of ids (unique uids + gids) 16
Number of uids 5
root (0)
live (1000)
unknown (1015)
unknown (502)
unknown (1001)
Number of gids 14
root (0)
unknown (513)
shadow (42)
fuse (1000)
users (100)
live (1002)
unknown (11)
tty (5)
messagebus (102)
unknown (502)
utmp (43)
staff (50)
adm (4)
mail (8)
005-nss-ddr01-sf03.pfs
/mnt/bundles1/005-nss-ddr01-sf03.pfs
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /tmp/pfs-new/005-nss-ddr01-sf03.pfs, block size 131072.
[===============================================================================================================/] 72/72 100%

Exportable Squashfs 4.0 filesystem, lz4 compressed, data block size 131072
compressed data, compressed metadata, compressed fragments, compressed xattrs
duplicates are removed
Filesystem size 3347.65 Kbytes (3.27 Mbytes)
58.99% of uncompressed filesystem size (5675.27 Kbytes)
Inode table size 1100 bytes (1.07 Kbytes)
60.94% of uncompressed inode table size (1805 bytes)
Directory table size 795 bytes (0.78 Kbytes)
67.09% of uncompressed directory table size (1185 bytes)
Number of duplicate files found 1
Number of inodes 50
Number of files 35
Number of fragments 3
Number of symbolic links  1
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 14
Number of ids (unique uids + gids) 1
Number of uids 1
root (0)
Number of gids 1
root (0)
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 21:16:35
mkpfs /mnt/live/memory/images/$modul -o /tmp/pfs-new/$modul  --mksqfs -comp lz4

В принципе здесь вся инфа об этом Терминология и спецификации формата PFS
compression_fast - компрессия внутри squashfs при использовании mkpfs -f . По умолчанию lz4 :)

Название: Re: pfsrebuild
Отправлено: k0l0p0k от 16 Май 2019, 21:33:27
compression_fast - компрессия внутри squashfs при использовании mkpfs -f . По умолчанию lz4 :)
конечно можно этот ключик использовать - и скрипт короче.
а
--mksqfs -comp lz4
сделал с целью опробовать параметры дальше mksquashfs передать:
--mksqfs / параметры для mksquashfs, компрессия размер блока и проч.(Внимание параметр должен быть последним)
ну и стопроцентно уверен что нужная компрессия, а то вдруг умолчательные параметры поменяны
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 21:48:40
С pfsrebuild можно было бы через youtube-dl-update скачивать youtube-dl сразу в /usr/local/bin. А потом:

 pfsrebuild youtube-dl_any-sf02.pfs
Создайте файл /etc/pfs.cfg и запишите в него строку
prefixmp="/mnt/live/memory/images/"

Изменил:
Цитата
cat /usr/bin/youtube-dl-update
#!/bin/ash
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/bin/youtube-dl
sudo chmod 755 /usr/bin/youtube-dl

Теперь после youtube-dl-update можно sudo pfsrebuild youtube-dl_any-sf02
Но все равно новый модуль надо вручную класть в нужную директорию с заменой.
Или сразу запускать sudo pfsrebuild youtube-dl_any-sf02 в этой самой директории. Не получается полной автоматики.
Название: Re: pfsrebuild
Отправлено: krasnyh от 16 Май 2019, 21:59:51
Теперь с pfsrebuild это стало не актуально:
Конечно у меня эти модули лежат уже распакованные в своих директориях, остается только поменять начинку и ПКМ по папке - Открыть - Упаковка PFS-пакета.
Конечно если речь идет о редактировании существующих файлов, а не добавлении новых.

Более того, при редактировании файлов прямо в системе нет необходимости перезапускать модули.
Название: Re: pfsrebuild
Отправлено: betcher от 17 Май 2019, 02:15:47
Компрессию нужно подбирать под железо. В магос для этого специальный скрипт есть - squashtest. 
-f это быстрое сжатие, то есть когда скорость запаковки для вас важнее скорости запаковки. Для модулей lz4 имеет смысл только на очень слабых машинах вроде нетбуков с атомом. На i3 - i5 быстрее будет lzo или gzip. На топовых ничего перепаковывать не надо xz самый быстрый.
Название: Re: pfsrebuild
Отправлено: sfs от 17 Май 2019, 09:27:18
Я правильно понял суть проблемы :
В несоставных модулях мы выкинули список файлов
pfsrebuild с такими модулями не работает, т.к. списка нет
Мне сомнительно, что sfs захочет переделывать такое количество модулей?
Т.к. это актуально только для самообновляющихся (http://forum.puppyrus.org/index.php?topic=21699.msg157185#msg157185) (отдельно от дистра) прог - актуально переделать только их

pfsrebuild работает с составными модулями?
Если да - самое простое переделать самообновляющиеся модули в составные. Браузеры , вроде и так составные

новый модуль надо вручную класть в нужную директорию с заменой.
В теме про инсталлятор ПРА Дядя Шурик дал код, из которого можно выдернуть определение местонахождения подключенного модуля
В конце pfsrebuild можно задать вопрос "заменить?"
Название: Re: pfsrebuild
Отправлено: DdShurick от 17 Май 2019, 09:48:40
суть проблемы
Несоблюдение принятых нами же стандартов.
Название: Re: pfsrebuild
Отправлено: sfs от 17 Май 2019, 09:49:40
В несоставных модулях мы выкинули список файлов
Где такой стандарт
Выкидывал не я - коллегиально
Название: Re: pfsrebuild
Отправлено: DdShurick от 17 Май 2019, 09:54:15
Где такой стандарт
http://forum.puppyrus.org/index.php?topic=17858.0
Выкидывал не я - коллегиально
Я в этом не участвовал!
Название: Re: pfsrebuild
Отправлено: krasnyh от 17 Май 2019, 10:01:54
Если да - самое простое переделать самообновляющиеся модули в составные.
Как я понял, ничего не надо переделывать.
Создайте файл /etc/pfs.cfg и запишите в него строку
prefixmp="/mnt/live/memory/images/
Это обший файл  /etc/pfs.cfg, я его поместил в 090-save

Цитата
    /etc/initvars - переменные заданные initrd ( часть спецификации ULRF )
    /usr/bin/pfs - устанавливаются переменные, учитывающий специфику конкретного дистрибутива»
    /etc/pfs.cfg - устанавливаются переменные, учитывающий специфику дистрибутива или конкретного пользователя
wiki.puppyrus.org/puppyrus/pr218/pfs3#терминология_и_спецификации_формата_pfs (http://wiki.puppyrus.org/puppyrus/pr218/pfs3#терминология_и_спецификации_формата_pfs)
Название: Re: pfsrebuild
Отправлено: betcher от 17 Май 2019, 10:26:38
Я правильно понял суть проблемы :
В несоставных модулях мы выкинули список файлов
pfsrebuild с такими модулями не работает, т.к. списка нет
Не, вообще не так :)
Изначально путь к бандлу определялся как $prefixmp/имя-модуля. Позже сделали иначе, из aufs-n или вроде того, точно не помню надо смотреть. А конкретно в этой утилите осталось постарому.  Будет время переделаю, пока запишите в конфиг или в pfs правильный префикс.
А работу без списков я давно пофиксил.
Название: Re: pfsrebuild
Отправлено: sfs от 17 Май 2019, 11:00:42
Т.е. добавляю в 089 это
    Создайте файл /etc/pfs.cfg и запишите в него строку
    prefixmp="/mnt/live/memory/images/
и ждем это
Будет время переделаю
Название: Re: pfsrebuild
Отправлено: betcher от 17 Май 2019, 11:03:32
Ага, все так.
Название: Re: pfsrebuild
Отправлено: betcher от 19 Май 2019, 06:15:35
Починил вроде. В v4.  В v3 наверное нет смысла переносить, работает же.
Название: Re: pfsrebuild
Отправлено: krasnyh от 19 Май 2019, 15:38:36
Починил вроде. В v4
По поводу pfsrebuild. Я пока не проверял исправленную версию (v4), но у меня есть важное замечание.
Я проверял pfsrebuild, когда он был еще неисправен. При запуске pfsrebuild модуль создавался пустой модуль. В планах скрипт, который бы сразу перезаписывал исходный модуль в /modules или /base, независимо от того в какой директории он запускается. Так удобней и меньше ручного труда.

Так вот, мое предложение, чтобы pfsrebuild отслеживал возможные ошибки и не создавал в таких случаях новый модуль. А то может так оказаться, что у меня в рабочей директории окажется куча модулей с правильным названием, но абсолютно пустые.
Название: Re: pfsrebuild
Отправлено: krasnyh от 19 Май 2019, 15:57:58
Еще, как вариант, можно рассмотреть такой момент.
Например:
1. я кидаю в профиль firefox файл со своими настройками.
/home/live/.mozilla/firefox/pra.default/user.js
По логике после sudo pfsrebuild 083-firefox-profile_any его там не будет.
2. Второй пример. Кладу в /opt/firefox/ файл политик distribution/policies.json
После sudo pfsrebuild firefox-66.0.4- его там тоже не будет.

Мне интересен этот момент ради большей автоматизации действий пользователя (моих действий :)).

Может как-то добавить возможность, чтобы такие папки полностью попадали в новый модуль, даже если их содержимое не указано в /mnt/live/memory/images?

Хотя тут я не настаиваю, это наверно непросто технически, да и может не всем надо.
Название: Re: pfsrebuild
Отправлено: betcher от 19 Май 2019, 20:23:45
Чтоб не создавался пустой сделать можно, хотя если  передать имя подключенного модуля это и не должно случиться.  А вот по поводу добавления файлов/папок надо думать. Тут даже не технически сложно, а как раз с  пользрвательской стороны. Не всегда понятно чего добавлять.
Название: Re: pfsrebuild
Отправлено: sfs от 20 Май 2019, 09:10:58
Починил вроде. В v4.
Работает. Спасибо+
В v3 наверное нет смысла переносить, работает же.
В 3 и проверял. Почему нет смысла? Предлагаю добавить.
скрипт, который бы сразу перезаписывал исходный модуль
Можно переименовывать старый в .old.  В пра есть инструменты чистить такое
А можно это в гуй перенести :
В шапке инфа из вики
Список подключенных модулей (взять код из инсталлятора)
Вопросы : вопросы заменить и т.п.

Может как-то добавить возможность, чтобы такие папки полностью попадали в новый модуль
В этом случае проще пересобрать (распаковка-прравка - запаковка)
Не надо перегружать скрипт
Название: Re: pfsrebuild
Отправлено: betcher от 20 Май 2019, 10:47:53
Нагорячую боюсь не всегда получится. Имею ввиду те модули которые невозможно отключить. Даже если сработает фиг знает где косяк вылезет. Посмотреть список неоключаемых:
 pfs lsblocked
Могу предложить такую схему работы с pfsrebuild в случае если добавляются файлы, и если вы не знаете добавились ли они при обновлении.
- запускаем syschanges в отдельной консоли
- делаем необходимые изменения в системе, обновляем, добавляем файлы и т.д.
- останавливаем syschanges
- pfsrebuild mymodule.xzm -o new.xzm
- mkpfs new.xzm ./syschanges-дата/new -o обновленный-модуль.xzm
Соответственно если в ./syschanges-дата/new пусто, то и мержить не надо.
Идея понятна?
Название: Re: pfsrebuild
Отправлено: krasnyh от 20 Май 2019, 11:20:43
В PRA нет syschanges.


В моем сообщении выше это было высказано в качестве 'сырой идеи', для размышления 'надо-не надо'.
Наверно я соглашусь с sfs, что у pfsrebuild есть своя ниша и не надо его перезагружать.
Название: Re: pfsrebuild
Отправлено: betcher от 20 Май 2019, 11:23:13
Syschanges есть в v4.
Название: Re: pfsrebuild
Отправлено: krasnyh от 20 Май 2019, 11:32:45
Могу предложить такую схему работы с pfsrebuild в случае если добавляются файлы, и если вы не знаете добавились ли они при обновлении.
- запускаем syschanges в отдельной консоли
- делаем необходимые изменения в системе, обновляем, добавляем файлы и т.д.
- останавливаем syschanges
- pfsrebuild mymodule.xzm -o new.xzm
- mkpfs new.xzm ./syschanges-дата/new -o обновленный-модуль.xzm
Но интересно конечно, насколько быстро такой скрипт отработает. И не быстрее ли ручками.
Название: Re: pfsrebuild
Отправлено: krasnyh от 20 Май 2019, 13:05:12
Небольшой вопрос не по теме.
В magos собственные скрипты находятся только в 88-magos.xzm?
Цитата
$ ls
00-kernel.xzm   10-core.xzm    35-x-plasma.xzm     42-x-network.xzm     45-x-java.xzm
01-drivers.xzm  20-x-base.xzm  41-x-utilities.xzm  43-x-multimedia.xzm  88-magos.xzm
Меня это интересует в связи с вопросом удобства обновления системы.


upd. В magos легко и непринужденно обновляют систему каждый месяц. А у нас, чтобы обновить только одну базу семь потов сойдет.
Вот и работает frugal месяцами и годами, пока количество критических ошибок не превысит все нормы.

Может подумать о каком-то компромисе? Создать такой frugal, который можно без проблем обновлять каждый месяц? Пусть и в ущерб размеру, но без этой ручной кропотливой сборки?
Название: Re: pfsrebuild
Отправлено: betcher от 20 Май 2019, 13:07:57
Да все в 88-magos.xm, патчи может и в других местах есть, особо не интересовался, а скрипты все там.
Название: Re: pfsrebuild
Отправлено: krasnyh от 28 Май 2019, 23:06:48
Что-то уменя pfsrebuild (v3) права меняет на root у папок в профиле браузера (почему-то только у этих папок, другие файлы в профиле оставляет live):
Цитата
live@prar-1811 ..zilla/firefox/5jsgis9h.default-release % ls -l |grep drwx
drwx------ 2 root root     81 мая 28 19:28 bookmarkbackups
drwx------ 3 root root     60 мая 28 22:52 crashes
drwxr-xr-x 3 root root     80 мая 28 22:52 datareporting
drwxr-xr-x 2 root root     469 мая 28 22:24 extensions
drwx------ 3 root root      60 мая 28 22:51 gmp
drwxr-xr-x 3 root root      28 мая 28 22:21 gmp-gmpopenh264
drwx------ 2 root root       3 мая 27 17:24 minidumps
drwx------ 2 root root     100 мая 28 22:53 sessionstore-backups
drwxr-xr-x 7 root root      80 мая 28 22:51 storage
drwxr-xr-x 8 root root     120 мая 28 22:51 weave
Команда sudo pfsrebuild 083-firefox-profile_any


    Починил вроде. В v4.

Работает.
У меня pfsrebuild (v4) не работает без pfs.cfg. Брал здесь https://github.com/pfs-utils/pfs-utils-cli/blob/v4/project-files/usr/bin/pfsrebuild
Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 08:16:56
Могло не сработать с контейнером. Вроде починил, но проверяю только магос посмотрите у себя.
По поводу прав пока не понятно. Обычные права все должны сохраняться. Там и для cp и для tar стоят ключи сохраняющие права, добавил на всякий случай еще пару ключей к cp может починится :)
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 10:17:31
У меня pfsrebuild (v4) не работает без pfs.cfg.
Оказывается работал без pfs.cfg, но надо было перезагрузиться. Не знаю с чем это связано. Положил pfsrebuild в rootcopy, перезагрузился - ok.

А насчет прав. Для чистоты эксперимента, пересобрал pra6408-1904 с последним pfsrebuild (779b579). Команда sudo pfsrebuild 083-palemoon-profile-ru-28.4.0_any-sf01, меняет права всех папок на root, но не трогает содержимое.
Название: Re: pfsrebuild
Отправлено: sfs от 30 Май 2019, 10:20:33
С правами уже была проблема - не помню в каком скрипте pfs-util. Вроде , починили - надо там посмотреть
Вроде это (http://forum.puppyrus.org/index.php?topic=19562.msg137006#msg137006)
Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 11:00:42
 Скорее всего ситуация следующаяя. Сверху модуля который вы пересобираете подключен модуль где есть эти папки и они принадлежат другому пользователю. Проверьте права на папки в системе, а не в исходном модуле.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 11:13:15
подключен модуль где есть эти папки и они принадлежат другому пользователю.
Профиль браузера в ~/, там могут быть только права live, какие бы модули там не перекрывали.
Мое мнение - права меняются при работе pfsrebuild. Но возможно дело не в нем
С правами уже была проблема - не помню в каком скрипте pfs-util. Вроде , починили - надо там посмотреть
Вроде это (http://forum.puppyrus.org/index.php?topic=19562.msg137006#msg137006)
Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 11:23:30
Попробуйте с ключем --nopfs, чтоб точно знать кто ломает pfsrebuild или mkpfs. И вот еще эти папки в исходном модуле пустые или нет?
 В магос хомяка в модулях нет и такая ситуация не возможна.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 11:45:30
Папки с содержимым.

С --nopfs создалась папка 083-palemoon-profile-ru-28.4.0_any-sf01 с правами root у всех папок. Все файлы в этих папках с правами live.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 11:53:31
Скорее всего ситуация следующаяя. Сверху модуля который вы пересобираете подключен модуль где есть эти папки и они принадлежат другому пользователю. Проверьте права на папки в системе, а не в исходном модуле.
С pra6408-1904 кажется становится понятно. В 083-palemoon-profile-ru-28.4.0_any-sf01 помимо основного профиля есть еще папка nobody с этим же профилем, но с другими правами.
https://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/083-palemoon-profile-ru-28.4.0_any-sf01.pfs


Или это не причем, пути ведь разные:
Цитата
live@prar-1811 ..ofile-ru-28.4.0_any-sf01.pfs/home/live % sudo ls -la *
'.moonchild productions':
итого 0
drwx------ 3 live root 32 июн 23  2014  .
drwxr-xr-x 4 live root 59 сен 21  2018  ..
drwx------ 3 live root 54 ноя  8  2014 'pale moon'

nobody:
итого 0
drwxr----- 3 nobody root 45 янв 19 10:02  .
drwxr-xr-x 4 live   root 59 сен 21  2018  ..
drwx------ 3 nobody root 32 июн 23  2014 '.moonchild productions'


upd. Перепроверил на другом модуле с ~/, тоже меняются права папок, т.е. nobody ни при чем.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 12:34:58
Оффтоп.
При пересборке pra6408-1904.iso c iso-make-hybrid.sh, он мне сбрасывает у pfsrebuild права на выполнение в rootcopy.
Скрин.

Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 13:03:53
 Если с нопфс косяк не исчез значит он в пфсребилд, елсли папки не пустые, значит косяк с конвейером через tar. Надо смотреть ключи, но вообще это достаточно стандартный способ копирования по списку с сохранением прав. Не я придумал. Странно короче, надо думать.
Название: Re: pfsrebuild
Отправлено: betcher от 30 Май 2019, 14:53:43
А права в системе и в исходном модуле не сравнивали? Может в системе все же меняются.
Название: Re: pfsrebuild
Отправлено: krasnyh от 30 Май 2019, 15:19:49
А права в системе и в исходном модуле не сравнивали?
Скрины.
Название: Re: pfsrebuild
Отправлено: betcher от 01 Июнь 2019, 20:38:51
Косяк проявляется и в магос.  Tar по непонятной причине меняет пользователя на папки при этом сохраняя на файлы. Чет не гуглится как лечить.
Есть вариант заменить на цикл с cp -a --parent, но это однозначно приведет к тормозам. Возможно весьма существенным. Вкраце задача такая. Копировать файлы из системы в папку по списку из файла. С сохранением прав и путей.
Пока ничего менять не буду. Давайте думать.
https://github.com/pfs-utils/pfs-utils-cli/blob/v4/project-files/usr/bin/pfsrebuild
строка 50
Название: Re: pfsrebuild
Отправлено: krasnyh от 01 Июнь 2019, 22:09:29
Если в pfsrebuild закавычить allow_only_root (17 строка), то создается папка build_083-firefox-profile_any-kr7 с правильными правами. Может натолкнет на решение?
Код
$ pfsrebuild 083-firefox-profile_any-kr7                      
Only root can run /usr/local/bin/mkpfs

can't create module
Код
live@prar-1811 ..zilla/firefox/5jsgis9h.default-release % ls -l |grep dr
drwxr-xr-x 2 live live      80 июн  1 22:00 bookmarkbackups
drwx------ 3 live live      80 июн  1 20:58 crashes
drwxr-xr-x 3 live live     100 июн  1 22:00 datareporting
drwxr-xr-x 2 live live     240 июн  1 22:00 extensions
drwx------ 2 live live      40 июн  1 20:58 gmp
drwxr-xr-x 3 live live      60 июн  1 22:00 gmp-gmpopenh264
drwx------ 2 live live      40 мая 27 17:24 minidumps
drwxr-xr-x 5 live live     100 июн  1 20:58 storage
drwxr-xr-x 6 live live     140 июн  1 22:00 weave


Хотя это очевидно, что без sudo там нечему менять пользователя у папок. :)