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

Разработки проекта PuppyRus => Разработка PFS и Initrd => Разработка PFS-utils v.4 (только для разработчиков) => Тема начата: sfs от 30 Июль 2019, 15:50:26

Название: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 30 Июль 2019, 15:50:26
А не запилить ли дополнительный функционал...
Что даст :
1. Не только собрать модуль приложения, но и проверить его работоспособность (http://forum.puppyrus.org/index.php?topic=21158.msg156247#msg156247)
2. Запускать прогу из другой системы в ее окружении .
3. Запускать прогу из своей системы в клетке (для параноиков)
4. Запускать гостевую x86_64 систему на хосте i686 (на хосте нужно x86_64 ядро).
в 64бит системах есть встроенная возможность запускать 32 проги
Наоборот - нет. Вот и решение. А это актуально, т.к. некоторый софт уже только 64
Т.е. сидите в легкой i686 системе. Когда потребуется прога, которой нет для i686 - запускаем chroot2pfs
5. Сделать модуль проги с GUI инсталлятором
6. Компиляция в среде другого дистрибутива
7. Альтернатива виртуалки для слабых ПК без виртуализации

При этом, чтобы как-то попроще чем в docker (https://linux-notes.org/zapusk-gui-prilozhenij-v-docker/). Иначе проще его и заюзать
Я так понимаю оптимально через совместное использование сокета X11 хоста с контейнером

Использование (http://forum.puppyrus.org/index.php?topic=21939.msg160200#msg160200)
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 30 Июль 2019, 16:05:25
Что-то подобное в готовом виде есть в CoreOS (http://bkhome.org/news/201811/xenialpup-75-running-in-easyos.html). C GUI. Можно поковырять на предмет идей
Попытки использования GUI из пупи у меня обычно заканчивались полным переписыванием

В аттаче скрипты CoreOS и папка для запуска seamonkey
Запускается все это
Код
empty -f ec-chroot www seamonkey
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: DdShurick от 30 Июль 2019, 18:14:35
А не запилить ли дополнительный функционал...
А надо? Или очень хочется? Пользователю не надо, разработчик обойдётся.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 30 Июль 2019, 18:21:02
Если попроще получится - почему бы и нет...
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: k0l0p0k от 30 Июль 2019, 18:26:17
ssh -XYC user@host прога
пользуюсь давно и успешно
в локалке отлично работает, быстро
или я не понял идеи?
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: DdShurick от 30 Июль 2019, 18:50:41
Если попроще получится
Что может быть проще, чем примонтировать сборочный каталог в aufs?
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 31 Июль 2019, 03:46:55
А чем это кардинально отличается от того что я предлагал по запуску иксовых программ в чрут2пфс? Там уж действительно проще некуда, разрешакм в системе подключаться к иксам и экспортируем DISPLAY в чруте. В соседней теме все.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 31 Июль 2019, 09:15:42
ssh -XYC user@host прога
пользуюсь давно и успешно
в локалке отлично работает, быстро
На локальной-то машине зачем ssh. Надо проще
Что может быть проще, чем примонтировать сборочный каталог в aufs?
А дальше по сабжу?
В соседней теме все.
Пропустил. Поищу
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 31 Июль 2019, 10:53:39
В итоге это (http://forum.puppyrus.org/index.php?topic=21158.msg156247#msg156247) получилось?
Можно подробнее рецепт...
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 31 Июль 2019, 11:32:33
 Да, конечно. Инструкция ровно такая как в моём посте.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 31 Июль 2019, 11:56:38
Если передумали на счёт ненужности этого в чрут2пфс, то могу запилить. В магос точно работало.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: ШАМАНЯ от 31 Июль 2019, 20:02:02
Пожалуйста, сделайте!
Мне очень интересно!
Я тоже хочу у себя запускать разные пуппи и пра и др.  по щелчку мыши , как бари в  easyos  запускает racy и xenial. И программы с зависимостями будут в одном файлы, чтобы в сборку библиотеки лишнии не добавлять, очень удобно будет!
Или подробно расскажите:)
Спасибо.

В аттаче скрипты CoreOS и папка для запуска seamonkey
Запускается все это
Код
empty -f ec-chroot www seamonkey
буду пробовать, это  в любой пра 32/64 ? а seamonkey  любой версии подойдёт?
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 01 Август 2019, 09:23:43
Если передумали на счёт ненужности этого в чрут2пфс, то могу запилить.
Идея не вдохновила в узком применении - для установки
После понимания возможности более широкого применения (см. шапку темы) - стало интереснее
Опять же - возможно сможет заменить виртуалку тем, у кого проц ее не поддерживает
Как минимум поэкспериментировать интересно
Поэтому пока устроило бы быстрое решение. Если приживется - можно будет сделать удобнее, вплоть до гуя

буду пробовать, это  в любой пра 32/64 ? а seamonkey  любой версии подойдёт?
В теории запускать можно в любом линуксе (даже 32\64 без разницы) ,  подойдет любая монолитная база с Х и любым Х приложением
По опыту - адаптация пупи скриптов сложна. Иногда проще переписать

Кстати - в 64бит системах есть встроенная возможность запускать 32 проги
Наоборот - нет. Вот и решение. А это актуально, т.к. некоторый софт уже только 64
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 01 Август 2019, 10:00:09
 Моя идея была достаточно проста. Chroot2pfs - утилита, которая сохраняет в модуль изменения в файлах сделанные консольной коммандой (скриптом) в chroot запущенном с  "чистой" копией текущей системы. Так почему бы не научить его сохранять изменения сделанные графической утилитой.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 01 Август 2019, 10:27:01
А хотелось бы : собрать AUFS корень (это уже есть) и запустить из него Х приложение (без ssh и т.п)
По итогу .desktop ( пока делать его руками) из которого все собирается и нужная прога запускается. По закрытию проги - все разбирается, отмонтируется
Сохранения здесь , наверное не нужны (или пока не нужны)
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 01 Август 2019, 10:37:39
Если не сохранять то вряд ли это имеет отношение к чрут2пфс, да и вообще к пфс.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 01 Август 2019, 11:19:12
А как же сборка aufs корня. Она же средствами pfs. Да и какая разница. Функционал интересный. В рамках чего - не имеет значения
Если проще сохранять - ок
Пока хочется хоть чтобы как-то запустилось. Поюзаем - окончательно решим
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 01 Август 2019, 11:40:13
Надо по умолчанию сохранять, а для "не сохранять" добавить ключ.
Кстати, системд-nspawn может не только чрутиться, но и загрузить систему в чруте начиная с инит вроде. Можно это направление покопать.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 01 Август 2019, 11:42:54
по умолчанию сохранять, а для "не сохранять" добавить ключ.
отлично
системд-nspawn не везде есть. Хорошо бы сначала без него
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 02 Август 2019, 21:06:58
Сделал на пробу. Проверяйте у себя, в магос работает и с чрутом и с nspawn (без загрузки просто чрут).
Добавил два параметра:
-X  - разрешает подключаться к иксам 
--nomod - не создавать модуль

То есть в простейшем случае типа такого:
chroot2pfs   -X --nomod --command leafpad
или
chroot2pfs   -X --nomod --command /bin/bash
и запускать уже из чрут консоли.
P.S. Работает только самое элементарное. Если нужен d-bus, например, уже не запустится.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: krasnyh от 02 Август 2019, 21:20:14
chroot2pfs   -X --nomod --command leafpad
Код
live@prar-1811 ~ % sudo chroot2pfs -m "^0[0-1].*" -X --nomod --command leafpad
Using:  chroot
aufs number: 1
/mnt/bundles1/000-kernel-4.20.15-pf7_64.pfs
/mnt/bundles1/001-kernel-schedulers.pfs
/mnt/bundles1/001-prar1811-kr1.pfs
/usr/local/bin/chroot2pfs: строка 173: xhost: команда не найдена
/usr/local/bin/chroot2pfs: строка 174: xhost: команда не найдена
env: «leafpad»: Нет такого файла или каталога
/usr/local/bin/chroot2pfs: строка 191: xhost: команда не найдена
umount: : no mount point specified.
delaufs 1

А можно простыми словами, зачем это все нужно? А то я из темы не понял. :)
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 02 Август 2019, 21:27:28
Нет команды xhost. Надо найти в каком пакете и попробовать поставить.
Почитайте эту теми и последние сообщения в следующей. Применения могут быть разными.

rpm -qa  |grep xhost
xhost-1.0.7-3-rosa2016.1.x86_64
То есть в росе это отдельный пакет. Попробуйте pacman -S xhost
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: krasnyh от 02 Август 2019, 21:28:01
Доустановил xhost:
Код
live@prar-1811 ~ % sudo chroot2pfs -m "^0[0-1].*" -X --nomod --command leafpad
Using:  chroot
aufs number: 1
/mnt/bundles1/000-kernel-4.20.15-pf7_64.pfs
/mnt/bundles1/001-kernel-schedulers.pfs
/mnt/bundles1/001-prar1811-kr1.pfs
non-network local connections being added to access control list
env: «leafpad»: Нет такого файла или каталога
non-network local connections being removed from access control list
umount: : no mount point specified.
delaufs 1

live@prar-1811 ~ %


upd. Без маски -m "^0[0-1].*"  стартанул leafpad.
Проверка успешна.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 02 Август 2019, 21:31:46
env: «leafpad»: Нет такого файла или каталога
leafpad это просто текстовый редактор для примера, если его нет попробуте запускать любые гуевые приложения.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 02 Август 2019, 21:32:37
Проверка успешна.
Вот и славненько. Осталось понять нужно ли оно вообще :))
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: krasnyh от 02 Август 2019, 21:35:40
Еще я давно заметил в работе с chroot2pfs, если повторно запустить эту же команду, то
Код
live@prar-1811 ~ % sudo chroot2pfs   -X --nomod --command leafpad
Using:  chroot
aufs number: 2
can't insert layer to aufs 2

live@prar-1811 ~ %
И пока вручную не удалю /mnt/aufs2 aufs2.lock (aufs1.lock), работать не будет.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 02 Август 2019, 21:39:43
И пока вручную не удалю /mnt/aufs2, работать не будет.
Такое бывает если прервать скрипт или если он косячно завершился. Обычно помогает:
pfs delaufs 2
тут 2 это номер ауфс.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: krasnyh от 02 Август 2019, 21:47:45
Код
live@prar-1811 ~ % pfs delaufs 2                                 
aufs2
bundles2
changes2
delaufs  ERROR!!!
Не стработало. Не сложно и ручками удалить в принципе. )
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 03 Август 2019, 11:05:56
chroot2pfs   -X --nomod --command leafpad
Работает +
Осталось понять нужно ли оно вообще
По мне - наиболее интересно : Компиляция в среде другого дистрибутива без виртуалок
Что-то тяжело у меня с этим в дебиане. В Арче попроще

Проблемы :
1. Проги запускаются от root. Не то чтобы проблема , но полезно знать
Решение : sudo -u user прога

2. lxterminal запускается, но не напечатать в нем (пока тестировал только в ДДР). В leafpad печатает
При запуске 001-ddr*.pfs в пра64 этого эффекта нет
Возможно, особенности ДДР
C nspawn работает

3. urxvt: can't initialize pseudo-tty, aborting
При запуске 001-ddr*.pfs в пра64 этого эффекта нет
C nspawn работает

4.
Работает только самое элементарное. Если нужен d-bus, например, уже не запустится.
Хорошо  бы порешать... Но позже
С -c nspawn --boot (https://wiki.archlinux.org/index.php/Systemd-nspawn_%28%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9%29#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B)  (systemd-nspawn -b) вариантов запустить что-то сложное больше. Гость стартует с init. Т.е. почти виртуалка
В гостевой системе тоже должен быть systemd.
Контейнер может быть выключен, запустив poweroff внутри контейнера. От root, контейнеры можно управлять с помощью  machinectl.
Чтобы завершить сеанс из контейнера, удерживайте клавишу Ctrl и быстро нажмите ] три раза.
После логина в госте : export DISPLAY=:0 и можно прямо из этой консоли запускать Х проги
Или запустить urxvt - остальное - из него

5. Локаль английская
Решение : --command LANG=ru_RU.UTF-8 /usr/bin/lxterminal
C nspawn не работает. Используйте  -c nspawn --boot

6. Программа не запускается с -c chroot (http://-c chroot)
Используйте nspawn или запустите скрипт из PRA update-caches
Возможно требуется предварительный запуск dbus или т.п.

Такое бывает если прервать скрипт или если он косячно завершился
Хорошо бы автоматизировать...
У меня подобное проявляется еще  при попытке распаковать составной  модуль, подключенный при загрузке ОС. Если скопировать его - норм.
Код
package: dropbear_2016.74-df-sf01 -- processing...
mount: /dev/loop5 is already mounted or /mnt/bundles1/Ssh-dropbear-ddr01-sf02.pfs busy
       /dev/loop5 is already mounted on /mnt/live/memory/images/Ssh-dropbear-ddr01-sf02.pfs
mount: /mnt/aufs1 not mounted or bad option
Никак не доберусь до этой темы...
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 03 Август 2019, 11:19:49
3. Запускать прогу из своей системы в клетке (для параноиков)
Браузер palemoon запускается и из своей системы и из чужой

ПМ работает. Доступ в инет есть. Значит и компиляция будет работать
Короче - хорошо получилось

Надо доку в вики написать. А может и гуй написать.... Хотя , наверное, проще прочитать доку и нужный скрипт самому написать...
Все равно тема явно не для новичков...
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 03 Август 2019, 12:49:54
В пра pfs-util 3
Поэтому mkpfs --trim не работает. Надо в chroot2pfs закомментить 7 строку

--nomod - не создавать модуль с изменениями
Это только для запуска? А как сделать чтобы на выходе была папка, а не модуль?
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 03 Август 2019, 13:07:24
Чтобы в папку нужно имя без расширения указать.
То есть:
 -o folder
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 03 Август 2019, 13:17:50
Пару раз попал на
Код
umount: /mnt/aufs1/dev: target is busy
        (In some cases useful info about processes that
         use the device is found by lsof(8) or fuser(1).)
^C
при закрытии проги (xfce4-terminal
Вылечил
Код
root@DDR01:base# 
root@DDR01:mnt# umount /mnt/aufs1/dev
root@DDR01:mnt# pfs delaufs 1
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 03 Август 2019, 13:20:14
Вылечил
Надо осторожно тут. Ауфс не обязательно - 1.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 03 Август 2019, 13:21:08
-o folder
Не сработало. Создался модуль folder
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 03 Август 2019, 14:10:17
Надо осторожно тут. Ауфс не обязательно - 1.
Можно запускать как-то более осторожно?
Nspawn не проверяли?
Работает. Причем с ним заработал urxvt и lilyterm
2. lxterminal запускается, но не напечатать в нем (пока тестировал только в ДДР).
3. urxvt: can't initialize pseudo-tty, aborting
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 03 Август 2019, 19:20:14
Не сработало. Создался модуль folder
Починил. Не работало из-за ключа -l для mkpfs там в папку не было предусмотрено, сейчас есть.
    Надо осторожно тут. Ауфс не обязательно - 1.

Можно запускать как-то более осторожно?
Имел ввиду что номер ауфс не обязательно 1. Добавл в delaufs размонтирование /dev, /proc, /sys если таковые попадутся. Пробовал прерывать chroot2pfs пока ошибос с размонтированием словить не удалось.

З.Ы. Давно уже запилил для delaufs интревалы, не помню писал сюда или нет. Короче так: delaufs 2 6  удалить со второго по шестой.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 04 Август 2019, 10:53:56
Запилил -b для nspawn.
Код
    "--boot" ) BOOT="-b";;
...
[ "$SCRIPT" ] || systemd-nspawn $BOOT -D $root_br   -M ${NAME%.$EXT} --setenv=DISPLAY="$DISPLAY" --b
ind=/tmp/.X11-unix:/tmp/.X11-unix $command
[ "$SCRIPT" ] && systemd-nspawn $BOOT -D $root_br   -M ${NAME%.$EXT} --setenv=DISPLAY="$DISPLAY" --b
ind=/tmp/.X11-unix /var/lib/chroot2pfs/$(basename "${NAME%.$EXT}")/$(basename $SCRIPT)
Открывает новые возможности. См . в шапке темы Использование
В аттаче скрипты для запуска PRA64 гостем. В гит в пнд добавлю

Хорошая игрушка получилась... Надо в вики запилить, чтобы все поиграть смогли
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: betcher от 04 Август 2019, 11:57:08
Я пробовал вчера бут, загрузка проходит до.логина, а вот залогиниться не получается в магос. Видимо потому, что преинит скрипты не выпоняются и юзера просто нет.
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 04 Август 2019, 12:04:08
юзера просто нет
Видимо - да. В пра юзера есть и все ок
Название: Re: Запуск Xorg приложений в chroot2pfs
Отправлено: sfs от 05 Август 2019, 10:38:51
Чет в гит нету.
В гит в пнд добавлю