ein neuer stabiler Branch des Tools , который предоставляет систему для сборки самодостаточных пакетов, не привязанных к конкретным дистрибутивам Linux и выполняемых в специальном контейнере, изолирующем приложение от остальной системы. Поддержка выполнения Flatpak-пакетов обеспечена для Arch Linux, , Debian, Fedora, Gentoo, Mageia, Linux Mint und Ubuntu verfügbar. Flatpak-Pakete sind im Fedora-Repository enthalten und werden in der standardmäßigen GNOME-Anwendungsverwaltung unterstützt.
Schlüssige в ветке Flatpak 1.8:
- Упрощена реализация установки в режиме P2P (позволяет организовать загрузку приложений и runtime-наборов через промежуточные узлы или накопители для систем без сетевого подключения). Прекращена поддержка установки через промежуточные хосты в локальной сети. Отключена по умолчанию автоматическая загрузка репозиториев (sideload), размещённых на локальных USB-накопителях. Для активации промежуточных локальных репозиториев следует настроить репозиторий через создание символической ссылки из /var/lib/flatpak/sideload-repos или
/run/flatpak/sideload-repos. Изменение позволило упростить внутреннюю реализацию режима P2P и повысить его эффективность. - Добавлен опциональный systemd unit для автоматического определения дополнительных репозиториев на подключённых внешних USB-накопителях.
- Для приложений, имеющих доступ к файловой системе, обеспечен проброс каталога /lib хост-окружения в /run/host/lib.
- Добавлены новые полномочия доступа к ФС — «host-etc» и «host-os», позволяющие получить доступ к системным каталогам /etc и /usr.
- Для генерации более эффективного кода разбора файлов GVariant из ostreee задействован .
- В сборочном крипте configure предоставлена возможность сборки без
libsystemd; - Обеспечено монтирование сокетов Journal в режиме только для чтения.
- В document-export добавлена поддержка экспорта каталогов.
- Разрешён прямой доступ к звуковым устройствам ALSA для приложений, имеющих доступ к Pulseaudio.
- In der API добавлен сигнал «install-authenticator», который может использоваться клиентами для установки аутентификаторов, необходимых для совершения транзакции.
- Обеспечено использование данных о часовом поясе на основе /etc/localtime из хост-системы, что решило связанные с часовыми поясами проблемы в некоторых приложениях.
- Прекращена установка файла env.d из gdm, так как генераторы systemd лучше справляются с этой задачей.
- В утилите create-usb по умолчанию включён экспорт частичных коммитов.
- Обеспечена поставка файла sysusers.d для создания через systemd необходимых пользователей.
- В команды «flatpak remote-add» и «flatpak modify» добавлена опция «—[no-]follow-redirect» для запрета/разрешения перенаправления на другой репозиторий.
- В систему
добавлен API Spawn для получения реального идентификатора процесса (PID) запущенного приложения. - Все репозитории OCI (Open Container Initiative) переведены на использование аутентификатора flatpak-oci-authenticator.
- В команды «flatpak remote-info» и «flatpak update» добавлена опция «—commit=» для задания определённой версии репозиториев OCI.
- Добавлена начальная поддержка delta-обновлений для репозиториев OCI.
- Добавлена команда «flatpak upgrade», которая является псевдонимом команды «flatpak update».
- Реализованы сценарии дополнения ввода для командной оболочки fish.
Напомним, что разработчикам приложений Flatpak даёт возможность упростить распространение своих программ, не входящих в штатные репозитории дистрибутивов за счет одного универсального контейнера без формирования отдельных сборок для каждого дистрибутива. Пользователям, заботящимся о безопасности, Flatpak позволяет выполнить вызывающее сомнение приложение в контейнере, предоставив доступ только к сетевым функциям и файлам пользователя, связанным с приложением. Пользователям, интересующимся новинками, Flatpak позволяет установить самые свежие тестовые и стабильные выпуски приложений без необходимости внесения изменений в систему. Например, в настоящее время Flatpak-пакеты уже для LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio и т.д.
Для уменьшения размера пакета он включает лишь специфичные для приложения зависимости, а базовые системные и графические библиотеки (Gtk+, Qt, библиотеки GNOME и KDE и т.п.) оформлены в виде подключаемых типовых runtime-окружений. Ключевое отличие Flatpak от Snap заключается в том, что Snap использует компоненты окружения основной системы и изоляцию на основе фильтрации системных вызовов, в то время как Flatpak создаёт отдельный от системы контейнер и оперирует крупными runtime-наборами, предоставляя в качестве зависимостей не пакеты, а типовые системные окружения (например, все библиотеки, необходимые для работы программ GNOME или KDE).
Neben der standardisierten Systemumgebung (Runtime), die über einen speziellen , werden zusätzliche Abhängigkeiten (Bundle) bereitgestellt, die für den Betrieb der Anwendung erforderlich sind. Zusammen bilden Runtime und Bundle die Grundlage des Containers, wobei die Runtime separat installiert wird und mehreren Containern zugeordnet werden kann. Dies ermöglicht die Vermeidung von Duplizierung gemeinsamer Systemdateien für die Container. In einem System können mehrere verschiedene Runtimes (GNOME, KDE) oder mehrere Versionen einer Runtime (GNOME 3.26, GNOME 3.28) installiert sein. Der Container mit der Anwendung als Abhängigkeit verwendet die Bindung nur zu einer bestimmten Runtime, ohne die einzelnen Pakete zu berücksichtigen, aus denen die Runtime besteht. Alle fehlenden Elemente werden direkt zusammen mit der Anwendung verpackt. Bei der Erstellung des Containers wird der Inhalt der Runtime als Partition /usr gemountet, während das Bundle im Verzeichnis /app gemountet wird.
Die Grundlage der Runtime und der Anwendungscontainer wird mithilfe von Technologien erstellt. , bei dem das Abbild atomar aus einem Git-ähnlichen Repository aktualisiert wird, was es ermöglicht, Versionierungsmethoden auf die Komponenten der Distribution anzuwenden (zum Beispiel kann das System schnell auf einen früheren Zustand zurückgesetzt werden). RPM-Pakete werden über eine spezielle Schicht in das OSTree-Repository übertragen. . Eine separate Installation und Aktualisierung von Paketen innerhalb der Arbeitsumgebung wird nicht unterstützt, das System wird nicht auf der Ebene einzelner Komponenten, sondern in Gänze aktualisiert, wobei der Zustand atomar geändert wird. Es stehen Werkzeuge zur Verfügung, die inkrementelle Aktualisierungen ermöglichen und die vollständige Ersetzung des Abbilds bei jeder Aktualisierung überflüssig machen.
Формируемое изолированное окружение полностью независимо от используемого дистрибутива и при надлежащих настройках пакета не имеет доступа к файлам и процессам пользователя или основной системы, не может напрямую обращаться к оборудованию, за исключением вывода через DRI, и сетевой подсистеме. Вывод графики и организация ввода durch das Wayland-Protokoll oder über den X11-Socket-Forwarding. Die Interaktion mit der Außenwelt basiert auf dem DBus-Nachrichtenaustauschsystem und einer speziellen API für Portale. Zur Isolation Schicht und die traditionellen Linux-Technologien zur Container-Virtualisierung, die auf cgroups, Namespaces, Seccomp und SELinux beruhen. Für die Audioausgabe wird PulseAudio verwendet.
Quelle: opennet.ru
