Сайт | Скачать | Видео | Wiki

Автор Тема: Консольный скрипт для установки PRAR в FULL  (Прочитано 2743 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
  • Автор темы
https://wiki.puppyrus.org/puppyrus/pra-roll#full пункт 4
Консольный - для опытных


или распаковать в одну папку нужные модули в порядке слоев ауфс
Для проверки фулл под uird, достаточно будет распаковать /base, выкинув 000-kernel-5.10.4-porteus и, может, заменив 040-de-xfce на более легкое /optional/040-de-ovs*. Учитывать, что в PRA последним грузится 089-upd-2008*, если нет changes, который всегда крайний.
Код
live@pra-roll ..+prar20.08-x86_64-08.iso/prar2008/base % ls
000-kernel-5.7.17-2-MANJARO.pfs   001-prar2008_DEV-sf09.pfs
000-kernel-5.10.4-porteus_64.pfs  040-de-xfce-gtk3-4.16-2008-sf07.pfs
001-prar2008-sf10.pfs             089-upd-2008-sf40.pfs

Вопрос:
В pra есть разные удобные скрипты для перепаковки pfspkg, pkg2pfs. А как в данном случае будет выглядеть набор команд, чтобы перевести папку (например /base) с несколькими модулями в состояние фулл с учетом aufs?


UPD. Еще для /base
070-prar-full-2008-sf03.pfs
« Последнее редактирование: 01 Март 2021, 09:26:22 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #1 : 25 Февраль 2021, 15:46:10 »
как в данном случае будет выглядеть набор команд, чтобы перевести папку (например /base) с несколькими модулями в состояние фулл
https://wiki.puppyrus.org/puppyrus/pra-roll#full пункт 4
или тупо unsquashfs


Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
  • Автор темы
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #2 : 25 Февраль 2021, 15:50:56 »
или тупо unsquashfs
Так вот это 'тупо' я и имел ввиду. Вопрос и был как это будет выглядеть в терминале в виде команд. Не по отдельности же каждый модуль распаковывать. Плюс надо учитывать их расположение по отношению к слоям.
« Последнее редактирование: 25 Февраль 2021, 15:52:31 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #3 : 25 Февраль 2021, 15:58:23 »
Не по отдельности же каждый модуль распаковывать.
варианты :
1. по отдельности
2. Скопировать подключенные модули (/mnt/live/memory/images)
3. инсталлятор (возможно внутри используется какой-то консольный скрипт)
2 - самое простое и предсказкемое. Порядок слоев  aufs-n

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
  • Автор темы
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #4 : 25 Февраль 2021, 16:32:30 »
варианты :
Да, забыл, там же сложносоставные модули. А я уже цикл намеревался прикрутить с pfsextract.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #5 : 25 Февраль 2021, 16:39:59 »
сложносоставные модули
Какая разница. Все равно будет распаковано в одну кучу
я уже цикл намеревался прикрутить с pfsextract.
Лучше бы инсталлятор протестировали

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
  • Автор темы
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #6 : 25 Февраль 2021, 23:27:30 »
А я уже цикл намеревался прикрутить с pfsextract.
Наваял все же. :) Для тестирования может быть полезен, быстро распаковал, быстро проверил. Но запустится ли такой фулл, пока не проверял.
Код
live@pra-roll vi ./full_prar.sh
#! /bin/bash

ls -1
if [ -z "$(ls /mnt/*.pfs 2>/dev/null)" ] ; then
   echo "Директория /mnt свободна от монтированных модулей"
else echo "Присутствуют монтированные модули в директории /mnt"
   fi

echo "Запускать скрипт в правильной папке с правильными модулями"
read -p "1 - Да, 0 - Нет: " base
if [[ $base == 1 ]]; then
  mkdir full
  for i in *.pfs ; do sudo mountfile "$i" 2>/dev/null ; done
  for i in /mnt/*.pfs ; do sudo cp -ar "$i"/* full ; done
  for i in *.pfs ; do sudo umountfile "$i" 2>/dev/null ; done
elif [[ $base == 0 ]]; then
  echo 'Пропускаем.'
exit 1
fi
live@pra-roll /mnt/sda3/copy/prar2008/base % sh ~/full_prar.sh
000-kernel-5.7.17-2-MANJARO.pfs
001-prar2008-sf10.pfs
001-prar2008_DEV-sf09.pfs
040-de-xfce-gtk3-4.16-2008-sf07.pfs
089-upd-2008-sf44.pfs
Директория /mnt свободна от монтированных модулей
Запускать скрипт в правильной папке с правильными модулями
1 - Да, 0 - Нет: 1
cp: запись через повисшую ссылку 'full/usr/local/bin/snapshot' не выполняется
cp: невозможно перезаписать каталог 'full/root/.config/xfce4' файлом, не являющимся каталогом
cp: запись через повисшую ссылку 'full/usr/local/bin/snapshot' не выполняется
sh ~/full_prar.sh  0,96s user 22,23s system 35% cpu 1:06,23 total
« Последнее редактирование: 26 Февраль 2021, 01:16:33 от krasnyh »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #7 : 26 Февраль 2021, 07:49:26 »
Наваял все же.
В папочке UIRD есть подпапка SSinstaLL, в ней скрипты простого инсталлятора для прар в фругал виде. Можно взять за основу эти скрипты и ваш распаковщик и по аналогии сделать скрипты для фулл. Скрипты нужно будет положить в отдельную папку и пронумеровать в порядке выполнения. Будет у вас два инсталлятора прямо на этапе uird. Выбираете в меню.лст "Установить FULL" или "Установить FRUGAL" и выбираете /dev/sd? из предложеных. Все.
З.Ы. Почему решили монтировать, а не unsquashfs? Если монтировать тогда уже и aufs (или оверлей) и одно копирование.
З.Ы. Скрипты выполняется на этапе подключения модулей в aufs, то есть можно использовать aufs собранный uird'ом. С оверлеем не тестировал.
« Последнее редактирование: 26 Февраль 2021, 07:53:14 от betcher »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
  • Автор темы
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #8 : 26 Февраль 2021, 14:49:10 »
Почему решили монтировать, а не unsquashfs?
Я сначала пробовал pfsextract, но в pra многие модули сложносоставные и все не так просто. И поэтому пошел таким сложным путем через монтирование (mountfile), как альтернативу подключению (pfsload):
Код
$ pfsinfo 001-prar2008-sf10.pfs
001-prar2008-sf10
030-gtk3-2008-sf04
070-pra-2008-sf02
070-pra-frugal-sf01
084-sf03
mesa-light-20.1.4-1-x86_64
Но unsquashfs действительно на это не обращает внимание и распаковывает все в одну папку. Так, что можно упростить скрипт до одного цикла.
С сохранением прав и атрибутов только не понятно как в unsquashfs.
« Последнее редактирование: 26 Февраль 2021, 14:51:22 от krasnyh »

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
  • Автор темы
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #9 : 26 Февраль 2021, 17:51:55 »
сначала пробовал pfsextrac
У pfsextract есть ключик -i, он подошел бы в данном случае, если бы мог устанавливать не только в систему, но и в отдельную папку. А насчет unsquashfs, не знаю, правильно ли он распакует модуль с учетом подмодулей, чтобы слои не нарушились.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #10 : 26 Февраль 2021, 18:07:25 »
модуль с учетом подмодулей, чтобы слои не нарушились
Модуль, это один слой в системе, внутри модуля слоёв нет.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
  • Автор темы
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #11 : 26 Февраль 2021, 18:12:12 »
Может не так выразился. Имею ввиду распаковку модуля в одну папку, с учетом порядка подмодулей.
Скрин.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
    • PuppyRus-A
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #12 : 01 Март 2021, 09:28:30 »
Наваял все же
Не нашел, где 0[89]*.pfs потадают наверх - пример реализации - см. в моем гуй скрипте
Имею ввиду распаковку модуля в одну папку, с учетом порядка подмодулей.
Зачем это здесь? Внутри составного модуля слои уже как надо. При распаковке его никак не перепутается

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
  • Автор темы
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #13 : 01 Март 2021, 13:12:22 »
Не нашел, где 0[89]*.pfs потадают наверх
Мой скрипт наверно только для тестирования и наладки full. Для этой цели достаточно base_only, а там и так 089* будет сверху, как последний модуль списка.

Внутри составного модуля слои уже как надо. При распаковке его никак не перепутается.
Т.е. достаточно unsquashfs? О подмодулях он ничего не знает, но это не будет помехой при распаковке?
Ок.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5332
  • Репутация: +139/-1
  • Автор темы
Re: Консольный скрипт для установки PRAR в FULL
« Ответ #14 : 01 Март 2021, 13:24:30 »
До иксов загрузка не доходит, но это видимо фулл у меня кривой.
Как я понял фулл получен через ручную распаковку модулей и в итоге не совсем рабочий. Или незнание, что 089* должен быть выше всех модулей или метод распаковке ошибочен. Хотелось бы узнать этот способ, чтобы тоже не споткнуться.

Учитывать, что в PRA последним грузится 089-upd-2008*, если нет changes, который всегда крайний.