Автор Тема: Добавить собственный пакет не из реп в свой дистрибутив  (Прочитано 504 раз)

Оффлайн borovinskiy

  • Начинающий
  • *
  • Сообщений: 4
Хочется сделать киоск в котором запускается на полный экран определенная программа браузера с вирутальной клавиатурой. Нужен не live, а именно инсталлируемый дистрибутив, чтобы переживал перезагрузку без потерь данных.

Использую mkimage-profiles c live-дистрибутива.

cd /usr/share/
sudo mv mkimage-profiles mkimage-profiles.bak
sudo git clone git://git.altlinux.org/gears/m/mkimage-profiles.git
sudo chown -R altlinux:altlinux mkimage-profiles
cd mkimage-profiles

в conf.d/kiosk.mk создал:

distro/kioskbrowser: distro/regular-lxqt

make kioskbrowser собирает образ.

Теперь задача создать пользователя с ограниченными правами, настроить автовход, настроить автозапуск программы, настроить DE для сокрытия всех панелей.

Возникает вопрос, как это лучше сделать.

Если бы была возможность после установки запустить скрипт от рута, то получилось бы установить программу и настроить DE без проблем, но я так понял, что просто указать скрипт нельзя.

Правильно ли я понял, что надо создать свой RPM, создать свой репозиторий, подключить репозиторий, в RPM прописать все действия по установке и настройке DE и прописать установку этого пакета?

Или как лучше сделать?

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Хочется сделать киоск в котором запускается на полный экран определенная программа браузера с вирутальной клавиатурой. Нужен не live, а именно инсталлируемый дистрибутив, чтобы переживал перезагрузку без потерь данных.

live имеет режим сохранения сессии.

sudo mv mkimage-profiles mkimage-profiles.bak
sudo git clone git://git.altlinux.org/gears/m/mkimage-profiles.git

Делайте git clone в домашний каталог пользователя. Нет нужды трогать системный.

Теперь задача создать пользователя с ограниченными правами, настроить автовход, настроить автозапуск программы, настроить DE для сокрытия всех панелей.

Есть пример, как сделать live для одного приложения в conf.d/live.mk:
distro/live-blender: distro/.live-games use/live/runapp
        @$(call add,LIVE_PACKAGES,blender)
        @$(call set,LIVE_RUNAPP_BINARY,blender)
        @$(call try,HOMEPAGE,http://blender.com/)

Вместо blender свой пакет и свой бинарик соответственно.

Если бы была возможность после установки запустить скрипт от рута, то получилось бы установить программу и настроить DE без проблем, но я так понял, что просто указать скрипт нельзя.

Но мне кажется, что Вам надо один раз установить систему, настроить её, да растиражировать. И собирать ничего не придётся. Или же использовать автоматическую сетевую установку, добавив свой скрипт:
https://www.altlinux.org/Autoinstall

Оффлайн borovinskiy

  • Начинающий
  • *
  • Сообщений: 4
Ага, запустить получилось. Пока не все работает как хочу, если не смогу разобраться, позже напишу вопросы, ну а пока опишу как включить на диск свое приложение не из реп, может кому пригодится.

Задача стоит в установке своего RPM-пакета без создания репозитария (вообще репозитарий лучше создать чтобы потом можно было обновлять).

Создаем директорию со структурой:

$ mkdir -p ~/repo/p10/branch/x86_64/RPMS.kiosk
Скачиваем в нее RPM-пакет:

$ wget https://example.com/YOUAPP-amd64.rpm -O ~/repo/p10/branch/x86_64/RPMS.kiosk/YOUAPP-amd64.rpm
Добавляем созданную папку как директорию с RPM-пакетами в репозитории:

$ vi ~/apt/apt.conf.sisyphus.x86_64
Добавляем в конце созданную папку (обратите внимание, что постфикс x86_64/RPMS.kiosk не пишется в пути):

rpm-dir file:///home/altlinux/repo/p10/branch x86_64 kiosk
Дальше в conf.d/kiosk.mk:

distro/YOUKIOSK: <вставить_из_чего_создаете_live> use/live/runapp
    @$(call add,LIVE_PACKAGES,YOUAPP)
    @$(call set,LIVE_RUNAPP_BINARY,YOUAPP_BIN)

Здесь в LIVE_PACKAGES в YOUAPP пишется название программы из RPM-пакета, а в LIVE_RUNAPP_BINARY в YOUAPP_BIN бинарник или полный путь до бинарника.

Если RPM надо просто поставить, но не запускать, в conf.d/kiosk.mk писать use/live/runapp и @$(call set,LIVE_RUNAPP_BINARY,YOUAPP_BIN) не надо.

Оффлайн borovinskiy

  • Начинающий
  • *
  • Сообщений: 4
Только почему-то полосы появляются (см. вложение).

У меня приложение запускается с шириной и высотой окна по умолчанию, после чего их модифицирует. Видимо модифицировать не удается или еще по какой-то причине не правильно вычисляется доступная ширина и высота экрана.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Только почему-то полосы появляются (см. вложение).

Может, у приложения есть опция командной строки для запуска в полноэкранном режиме или распахнутым на весь экран?

Оффлайн gvy

  • alt linux team
  • ***
  • Сообщений: 1 008
    • Альт на Эльбрусе
    • Email
У меня приложение запускается с шириной и высотой окна по умолчанию, после чего их модифицирует.
Как вариант -- посмотрите, как именно fullscreen реализован в браузерах (livecd-webkiosk.spec для классического фокса это делал через расширение, остальным -- через параметр запуска).

Ну и может иметь смысл перетащить запуск windowmanager'а вроде ratpoison, как там сделано ради диалоговых окошек; возможно, даже втащить прямо в фичу или сделать рядом use/live/runapp/ratpoison.  Но браузеры когда-то справлялись и без wm.
--
Michael Shigorin | ALT Linux Team | ANNA-News | Сделано у нас | altlinux.org/эльбрус

Оффлайн borovinskiy

  • Начинающий
  • *
  • Сообщений: 4
Приложение на Electron. Вначале создает окно с небольшим разрешением, затем читает конфигурацию и если в ней полноэкранный режим - переходит в полноэкранный режим. Нигде с этим проблем не было и полноэкранный режим является основным для приложения. В том числе нет при запуске приложения руками без use/runapp.

Ладно. Я подумал и понял, что мне все равно Live не нужен, поэтому разбираться в чем именно проблемы - сейчас смысла нет, но если и у других будет похожее поведение, значит дело не в моем приложении, а в чем-то еще.

Пока да, у меня планы разобраться как фичи работают и сделать режим киоска когда дистрибутив будет установлен, а при загрузке в live приложение не запускать, чтобы пользователь мог попробовать вообще как работает не устанавливая и если его все устраивает - установить дистрибутив и вот чтобы уже в установленном автологин, отключенное оформление окон и рабочего стола (киоск) и запуск единственного полноэкранного приложения. Думаю это наиболее оптимальная ситуация для пользователя: попробовать ПО на реальном железе киоска не снося установленную ОС и ставить только если убедился, что все нормально.

Да, чтоб два раза не вставать: сборка вебкиоска  с firefox не работает. Ругается на отсутствие пакета с плагином.