Установка на машине пользователя#
Приложение вендора и среда выполнения, на которой оно собрано, лежат в разных репозиториях. Подключить нужно оба. Без репозитория вендора Flatpak не найдёт приложение, без репозиториев Astra - среду, и установка прервётся.
Порядок один и тот же на любой машине: подключить репозитории Astra, подключить репозиторий вендора, установить приложение. Среда подтянется сама, как зависимость, указывать её отдельно не нужно.
Шаг 1: репозитории Astra#
Сборки Flatpak для Astra публикуются в двух репозиториях.
main - среды выполнения (org.astra.mainPlatform, org.astra.Qt,
org.astra.Qt6, org.astra.Gtk), драйверы GL и готовые приложения:
sudo flatpak remote-add --if-not-exists --from astra-main \
https://dl.astralinux.ru/astra-flatpak/main.flatpakrepo
extended - SDK (org.astra.mainSdk, org.astra.qtSdk,
org.astra.Qt6Sdk, org.astra.gtkSdk), базовые приложения и расширения
сборки:
sudo flatpak remote-add --if-not-exists --from astra-extended \
https://dl.astralinux.ru/astra-flatpak/extended.flatpakrepo
Пользователю, который только запускает приложения, достаточно main. Репозиторий extended нужен, если приложение зависит от расширения, опубликованного там, или если на машине планируется сборка.
Ключ --from говорит, что по адресу лежит файл подключения, а не сам
репозиторий: в файле собраны адрес, название и публичный ключ, поэтому
импортировать ключ отдельно не требуется. Ключ --if-not-exists позволяет
выполнять команду повторно, не получая ошибки о том, что репозиторий уже
подключён.
Шаг 2: репозиторий вендора#
Подключается точно так же, файлом подключения, который выложил вендор:
sudo flatpak remote-add --if-not-exists --from example \
http://flatpak.example.ru/example.flatpakrepo
Если вендор файла подключения не выложил, указывается адрес самого каталога репозитория, а публичный ключ передаётся отдельно:
sudo flatpak remote-add --if-not-exists example \
http://flatpak.example.ru/repo/ --gpg-import=repo-key.gpg
Проверить, что оба шага прошли:
flatpak remotes
astra-main system
astra-extended system
example system
Шаг 3: установка#
Посмотреть, что есть у вендора:
flatpak remote-ls example
Установить приложение:
sudo flatpak install example ru.example.Hello
Flatpak покажет, что именно будет установлено: само приложение из репозитория
вендора и среда выполнения из astra-main. Обе строки нужно подтвердить. Чтобы
не подтверждать вручную, добавляется ключ -y.
Запуск:
flatpak run ru.example.Hello
Приложение появляется в меню как обычная программа: ярлык и иконку Flatpak раскладывает при установке сам.
Системная и пользовательская установка#
По умолчанию установка системная: приложение доступно всем на машине и требует
прав администратора. Если прав нет или приложение нужно только текущему
пользователю, всё то же делается с ключом --user и без sudo:
flatpak --user remote-add --if-not-exists --from example \
http://flatpak.example.ru/example.flatpakrepo
flatpak --user install example ru.example.Hello
Два вида установки живут независимо: репозиторий, подключённый системно, для пользовательской установки не виден, и наоборот.
Обновление#
Обновление берёт новые версии из всех подключённых репозиториев:
sudo flatpak update
Обновить только одно приложение:
sudo flatpak update ru.example.Hello
Если вендор включил генерацию двоичных дельт, при обновлении скачивается только разница между версиями, а не приложение целиком.
Удаление#
sudo flatpak uninstall ru.example.Hello
Среда выполнения остаётся: её могут использовать другие приложения. Убрать всё, что больше никому не нужно:
sudo flatpak uninstall --unused
Когда установка не проходит#
Сообщение о том, что среда выполнения не найдена, означает, что репозитории Astra не подключены или подключён не тот из них. Проверить, доступна ли нужная среда:
flatpak remote-ls astra-main | grep org.astra
Сообщение о неверной подписи означает, что публичный ключ репозитория на машине не совпадает с тем, которым подписан репозиторий. Так бывает после смены ключа у вендора. Лечится повторным подключением из актуального файла:
sudo flatpak remote-delete example
sudo flatpak remote-add --from example http://flatpak.example.ru/example.flatpakrepo
Приложения нет в выводе flatpak remote-ls, хотя репозиторий доступен: оно
опубликовано под другой архитектурой или в другой ветке. Посмотреть всё, что
есть в репозитории:
flatpak remote-ls --all example
Приложение установилось, но не запускается. Посмотреть, с какими разрешениями оно стоит, и запустить его с выводом в терминал:
flatpak info --show-permissions ru.example.Hello
flatpak run ru.example.Hello
Ошибки при запуске идут в терминал, поэтому запуск из терминала показывает причину, которой не видно при запуске из меню.