Drake2xzm

Работает и в Росе и в Магее
Собственно это тот же rpmdrake2xzm, но только расширенный функционально
Вначале назвал rmdrake3xzm, но иногда путался. Вместо одного скрипта набирал другой
Надо установить в MagOS/base 90-pach.xzm - https://cloud.mail.ru/public/3cFy/2PPZKnbun

  1. Это мой chrootdisk. Те запуск в chroot либо самой сборки или образа от LiveDVD
    Интерактивно предлагается выбор root_br или changes
    Запуск :

drake2xzm

  • Паковка root_br - это получится обновленный LiveDVD
  • Паковка changes - это запись изменений
    Этим методом правил и обновлял образы LiveDVD от Магеи, Ubuntu
    Выбор диска интерактивный. Если от root ничего не примонтировано, то к выбору предлагается катадог /memory/bundles
    После запуска надо запустить допустим rpmdrake или для правки запускаю mc
  1. Правка модуля !!!
    Если в каталоге /memory/bundles выбрать какой нибудь модуль то модуль, то запустится в Dolphin и можно подкорректировать модуль и переписать его.
    Если модуль с тенями (.wh.file) то это сложнее
    В МагОС модули без теней и это проще
    У меня сборка то же без теней, но запись модуля изменения системы ведется с тенями.
    Т к удалил файл или выключил сервис в /memory/changes появляется тень и она должна попасть в модуль записи. Иначе удаленный файл или выключенный сервис так и останутся прежними.
    Если модуль с тенями то удалять файлы или папки надо сервисом shred от МагОС
    Сначала удаляется файл а потом тень
    Если удалять штатной опцией удаления то удаляешь файл и появляется тень.
    Удаляешь тень и появляется файл
    Но опция shred от МагОС (/usr/share/kservices5/ServiceMenus) у меня появляется только в Dolphin. В других ФМ я так и не добился расширения функций работы сервис-меню для мыши
    А как хорошо было бы добавить kservices5 добавить скажем в PcmanFM-qt от LXQt
    Т к с Dolphin проблемы. В Росе в Dolphin, при запуске от root в среде обычного юзера, отсутствуют иконки. В Магее иконки появляются но сам Dolphin c root уже не дружит
    В Магее 7 наметилась тенденция запрета работы Dolphin от root. Где то запускается но тут вроде еще не заблокировали.

Переключение c обычного модуля на модуль с тенями автоматически.
Но запустить правку модуля с тенями в монтируемом модуле можно и в ручную

drake2rpm --wh

  1. Это запуск аналога rpmdrake2xzm

drake2xzm --rpmdrake

Но rpm-база сохраняется
По умолчанию сохраняется весь каталог /var/lib/rpm
Но можно сохранять только /var/lib/rpm/Packages, задав опцию в MagOS.ini

RPMDBCLEANE=“yes”

Связано с тем что в Росе, если сохранить только /var/lib/rpm/Packages, то rpm-база при запуске системы не раскрывается. Как то странно. В Магее хоть как сохраняй все работает

  Модуль **91-update.xzm**  это обновление последней сборки от МагОС

На работе сборка от МагОС не входила в wifi. На домашнем wifi все ок !
После установки обновления wifi на работе стал запускаться.

   Модули - 92-xx.xzm, 93-XX.pfs, 94-XX.pfs

Это тестировал установку различных пакетов в последней сборке от МагОС
Т к в МагОС формаы модулей xzm, pfs то

MODULEFORMAT='*.xzm *.pfs ’

Что то путаюсь я с этими форматами. Разве нельзя какой то один использовать ?

  1. Запуск rpmdrake но в chroot

drake2xzm --chrootrpm

Дальше все интерактивно

Изменил синтаксис команды. Описание исправлено
Получилось вроде удобно. Уже обновил систему и как то даже просто.
У меня получилось два варианта запуска rpmdrake

  • drake2xzm --rpmdrake - Это запуск аналога rpmdrake2xzm
  • drake2xzm --chrootrpm - Запуск rpmdrake но в chroot

Оба варианта рабочие и даже не знаю что предпочесть.
Пока выбрал drake2xzm --chrootrpm . Вроде как он надежнее

Прогнал в lxqt mdialog --test и под юзером и под рутом и из текстовой консоли. Все нормально прошло, не пойму что не так у вас.

У chroot2pfs есть ключик -X, появился недавно и в магос я только сегодня эти изменения внес. Нужен ключик для запуска иксовых приложений. То есть то что вы здесь предлагаете, если я правильно понял, можно сделать так:

chroot2pfs -X -o modulename.xzm --command rpmdrake

Только что собрал так модуль собновлениями и парой софтин.
Если будете пробовать нужно взять pfs-utils с гитхаба.

Не надо путаться, это одно и тоже для атомарных модулей, разница появится только когда вы модули склеиваете. И расширение pfs мы не используем, то есть и те и те модули - xzm. Более того склеенные модули тоже будут работать и с утилитами магос и с pfs-utils, вот только с pfs-utils их можно еще обратно разобрать. То есть например склеить все модули магос в один, а потом обратно расклеить.

З.Ы. Было бы лучше если бы мы с вами развивали одни утилиты, а не изобретали свое. Присоединяйтесь к разработке pfs-utils, они изначально сделаны с прицелом на универсальность и никак не привязаны к конкретному дистру или пакетному менеджеру. В команде которую я привел вместо rpmdrake можно запустить что угодно и результаты работы сохрянятся в модуль.

Это по той ветке, что у нас в магос.

Сама команда mdialog у меня работает допустим :

mdialog --yesno "$MSG

Но если mdialog запустить так

mod_save=$(mdialog --getsavefilename “$xzm_name” “$MODULEFORMAT”)

То вместо kdialog запускался zenity

Пробовал разбираться но что то сложноваты они для меня и тяжело осваиваются.
Я как понял pfs-utils это работа с модулями. Хорошо бы в pfs-utils больше примеров в help
А можно ли в pfs-utils запустить, обновить и отредактировать образ от LiveDVD ?
А у меня пакетная сборка долго не работала и я делал сборку как раз на базе образа от штатной установки системы в минимальной конфигурации
И работа с образом от LiveDVD была основной. А то каждый раз делать образ на базе штатной установки было хлопотно.
И т к я обновления системы делал путем записи изменений при выключении системы, то попадало в модуль много лишнего.
И была проблема редактирования модулей. Надежнее распаковать модуль и запаковать
Но проще куда то смонтировать, отредактировать а потом запаковать.

Во всех дистрах, когда намечаются какие то изменения, то вроде делают тестовую версию
Если с тест-версией все ок, то тогда она становится основной.
В МагОС почему то все мирно уживается в одном реализе
Ну дак я просто перейду на pfs модули раз это лучше.

PS
За ссылку спасибо, но это уже завтра буду смотреть

По ссылке всего лишь форум по нашей ветке пфс-утилс. Там можно спрашивать если что-то не понятно и предлагать идеи.

Там всегда запускается зенити, кроме KDE. Если считаете что для lxqt правильнее kdialog то можно перенастроить. Я не уверен. Если был бы qtDialog то без вопросов :slight_smile:
А так фиг знает.
А на detectDE переделать пожалуй правильно.

P.S. Нет. В магос нужно оставлять kdialog только для плазмы.

pfsfind kdialog
Find file in root aufs

 N Module                                            SubModule                     PATH
20 /memory/copy2ram/0/base/35-x-plasma.xzm           is_not_contaner               /usr/bin/

А зенити в модуле с иксами. То есть если удалить модуль с плазмой mdialog в lxqt будет работать с зенити, так пусть всегда так работает.

Последнее время lxqt вроде прогрессирует. Добавляются новые опции
Допустим в Магее пришли обновления и можно использовать KWaletManager
В центре настоек появился новый значок - “Эффекты окна”
И я в LXQt запускаю Dolphin и др приложения от Plasma
Конечно настройки LXQt по дефолту в этом случае надо менять
Даже Plasma почти и не запускаю
Но что то на форуме в Магее LXQt не хотят запускать. Им другие раб столы подавай

Вопрос снимается. Разобрался.

И в mdialog для LXQt вместо zenity нормально включается kdialog, если в скрипте применен только mdialog
У меня в скрипте остаось использования Xdialog и он видимо что то путал в настройках

  1. Переделал я drake2xzm на работу в pfs.
    Но форматы сделал

MODULEFORMAT=’*.pfs *.xzm ’

Но kdialog понимает эту переменную. А при запуске kdialog из mdialog проходит только * .pfs
И activate, deactivate, gactivate пришлось править.

  1. Вот всем хорош rpmdrake2xzm и я уже обновляю систему, запуская его из drake2xzm
    Но модули надо писать последовательно.
    Потом через pfs можно эти модули объединить
    А ведь хорошо было бы если rpmdrake2xzm сразу бы все писал в один модуль
    Если модуль стал слишком большой, то выбираешь другой.
    Это можно сделать и не так сложно а нельзя ли для этого использовать сервисы pfs ?

Это вам зачем?
Расширение pfs вообще не нужно. Везде xzm.
Оставьте pfs паппирусам :slight_smile:)

Для обновлений можно попробовать использовать sync2layer, pfsrebuild или syschanges . Еще можно chroot2pfs, ему можно передать не только команду, но и скрипт и собирать он будет относительно тех модулей которые вы ему подсунете для базы чрута. То есть если делаете модуль с обновлениями, а в качестве базы у вас исо магеи, то в модуль попадут все обновления, а если в качестве базы исо плюс предыдущие обновления, то будет модуль только с новейшими обновами. Модули для чрута можно задать по маске, списком или списком из файла.

Еще у chroot2pfs есть такая же фишка как у urpm2xzm с автопересборкой.
То есть если у вас модуль собран командой:

chroot2pfs -o opera.xzm --command urpmi opera 

то для обновления этого модуля достаточно

chroot2pfs opera.xzm

Если ничего не путаю :slight_smile:

А pfs в МагОС обновленная ?
Пробовал использовать mkpfs вместо dir2xzm то теней при сборке модуля вообще нет
Если в pfs включить тени стр 223

mount -t aufs -o shwh,br:/$SYSMNT/changes$N/=rw aufs /$SYSMNT/aufs$N && echo “$SYSMNT/aufs$N” || return 1

То выключить тени не могу в mkpfs
Ни mkpfs -w ни mkpfs --wh
А сюдя по - mkpfs -w (тени)
Проблема уже решенная

В сборке магос pfs-utils из ветки v4, обновляю раз в пару-тройку месяцев. То есть если отстает то на пару месяцев. В следующей сборке будут свежие.
По остальному вообще не понял. Что вы там включаете в pfs? Это библиотека функций для остальных скриптов.

Что бы в сохраняемом образе в mkpfs тени сохранились надо их сначала смонтировать с тенями в aufs. Вот я в pfs и добавил монтирование теней. А так mkpfs тени игнорирует.

Сама сборка у меня без теней а сис-изменения пишутся с тенями.
Допустим надо удалить включенный сервис из системы удаляешь и в /memory/changes появляется тень и ее то и надо сохранить. Конечно правильнее выключать сервис при старте системы через MagOS.ini Но ведь это еще надо донести тем кто захочет попробовать сборку. А с сохранением теней получается максимальное соответствие с тем же drakconf из Магеи у меня.
Почистить систему то же нет проблем. Удаляешь все что нужно и выключаешься.

PS
А как на форуме обновить pfs - http://forum.puppyrus.org/index.php?board=176.0
Или это сборку надо скачивать ?

А что разве при подключении модуля с тенями с pfsload тени не работают?
Покажите последовательно что вы делаете, прямо командамию

Заберите скрипты с гитхаба pfs-utils и замените ими одноименные в /usr/lib/magos.

Вроде понял о чем вы. Просто видимо никому в голову не приходило то, что при сборке модуля в источниках уже могут быть тени :slight_smile:
Предлагаю написать в форум паппирус, будет ваш первый вклад в общее дело :slight_smile: Да и вообще надо бы прикинуть не сломает ли чего нибудь.
Тут еще момент в том, что с ключем -l тени не будут учтены, но сами файлы теней в модуль попадут, то есть с -l и без итоговый модуль будет отличаться, это не хорошо.

Ильфат уже начал тему про тени - http://forum.puppyrus.org/index.php?topic=21253.0
И вроде что то уже решено.
При монтировании системы корень root без теней
Все изменения пишутся в /memory/changes. И это уже каталог с тенями
Если при записи /memory/changes тени не учитывать то часть инфы о системе теряется
А именно что удалено.
Поэтому у меня модули сборки без теней а модули сис-изменения с тенями
Это позволило обычный МагОС приблизить к обычной штатной системе
Работаешь как в обычно и можно использовать те же инструменты
Конечно в теории это красиво но вроде неудобств в своей сборке я не испытываю

В Drake2xzm (за основу взят rpmdrake2xzm) выполняет задачи :slight_smile:

  • установка пакетов, обновлений в модуль - rpmdrake2xzm
  • Монтирование образа от LiveDVD для обновления и правки
    Можно модульную сборку сделать в виде одного образа
  • Правка установленных модулей. И тут то и вылазит модуль с тенями
    Вообще то я установленные модули монтирую в /memory/tmp/root_br и здесь появляется необходимость монтирования root_br но с тенями. Но может смонтировать его в
    /memory/tmp/changes и обойтись без нештатной работы root_br ?
    Попробовать надо еще раз

А у меня что то не то получилось. Я в drake2xzm заменил dir2xzm на mkpfs
И drake2xzm уже сформировал свои root_br(уже с тенями) и changes.
Но mkpfs уже готовый root_br видимо куда то смонтировал опять и получился модуль уже без теней
Получается неправильно я использовал mkpfs

mkpfs для сборки модуля создает свою ауфс, это нужно для сборки модуля из нескольких источников. Для склейки, проще говоря. Кстати, именно в это место вы и внесли звои правки в pfs :slight_smile: Кроме mkpfs этот код используют и другие утилиты. Чтобы отключить такое поведение и просто запаковать папку как делает dir2xzm есть ключик -l для mkpfs. Для сохранения теней -w. То есть mkpfs -l -w папка. Попробуйте.
То что начал Ильфат по теме теней должно работать, с ключами только разберитесь. Я думал ваша проблема в том, что при сборке ауфс для mkpfs и прочих pfs утилит не учитываются тени. А Ильфат писал о том, что тени в итоговый модуль не попадают.