Release des Systems für eigenständige Pakete Flatpak 1.6.0

Veröffentlicht ein neuer stabiler Branch des Tools Flatpak 1.6, der ein System zur Erstellung von eigenständigen Paketen bietet, die nicht an bestimmte Linux-Distributionen gebunden sind und in einem speziellen Container ausgeführt werden, der die Anwendung vom Rest des Systems isoliert. Die Unterstützung zur Ausführung von Flatpak-Paketen ist für Arch Linux CentOS, 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 Neuheiten в ветке Flatpak 1.6:

  • In API Portal добавлен метод CreateUpdateMonitor, позволяющий приложениям отслеживать появление обновлений и запрашивать установку появившегося обновления.
    Для запрета полномочий самостоятельной установки обновлений приложением можно использовать команду «flatpak permission-set flatpak updates $APPID no» (если указать «ask» вместо «no», то каждый раз будет выводиться диалог для подтверждения обновления);


  • Для упрощения создания обработчиков предложена библиотека
    libportal, которая даёт возможность обработки событий без прямого использования API Portal и разбора сигналов, приходящих через D-Bus.
    Libportal предоставляет простые асинхронно работающие прослойки для большинства «von Portalen«;
  • Добавлено новое полномочие «—socket=cups» для предоставления прямого доступа к серверу печати CUPS;
  • Изменены протокол и API для обработки аутентификации. Добавлен аутентификатор для OCI (Open Container Initiative). Реализована поддержка автоматической установки аутентификаторов из внешнего репозитория flatpak. В FlatpakTransaction добавлен callback-обработчик для использования аутентификации по логину и паролю по аналогии с методом аутентификации HTTP basic;
  • Добавлена поддержка защищённых приложений и систем, требующих аутентификации при загрузке;
  • Используемая для изоляции прослойка bubblewrap обновлена до выпуска 0.4.0;
  • Добавлена опциональная поддержка родительского контроля через применение библиотеки libmalcontent, позволяющей ограничить доступ к определённым видам контента;
  • Расширения теперь устанавливаются до приложения, что позволяет получить рабочее приложение сразу после завершения его установки;
  • Переработаны манипуляции с временными файлами, что позволило улучшить работу в условиях недостатка свободного дискового пространства;
  • Для выполнения команды «flatpak enter» больше не требуется использование sudo;
  • В порталы добавлена возможность запуска вложенных изолированных окружений (sub-sandbox) для дочерних процессов;
  • Добавлены новые команды «flatpak permission-set» и «permission-remove» для управления установкой полномочий;
  • Добавлена опция «flatpak install —or-update», выполняющая обновление, если приложение уже установлено;
  • Добавлена команда «flatpak mask» для закрепления версии и запрета установки обновлений;
  • Для образов в формате OCI (Open Container Initiative) добавлена поддержка привязки меток, генерации истории изменений в образе и включения mime-типов docker, помимо mime-типов OCI;
  • В настройки добавлен ключ default-languages для определения списка используемых языков, в дополнение к системному списку.

Erinnern wir daran, dass Flatpak Anwendungsentwicklern die Möglichkeit bietet, die Verbreitung ihrer Programme zu erleichtern, die nicht in den offiziellen Repositories der Distributionen enthalten sind, indem... Vorbereitung одного универсального контейнера без формирования отдельных сборок для каждого дистрибутива. Пользователям, заботящимся о безопасности, Flatpak позволяет выполнить вызывающее сомнение приложение в контейнере, предоставив доступ только к сетевым функциям и файлам пользователя, связанным с приложением. Пользователям, интересующимся новинками, Flatpak позволяет установить самые свежие тестовые и стабильные выпуски приложений без необходимости внесения изменений в систему. Например, в настоящее время Flatpak-пакеты уже zusammengestellt für LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio usw.

Um die Paketgröße zu reduzieren, umfasst es nur anwendungsspezifische Abhängigkeiten, während grundlegende System- und Grafikbibliotheken (wie Gtk+, Qt, sowie GNOME- und KDE-Bibliotheken usw.) in Form von verbindlichen Standard-Runtime-Umgebungen bereitgestellt werden. Ein grundlegender Unterschied zwischen Flatpak und Snap besteht darin, dass Snap die Komponenten der Hauptsystemumgebung nutzt und eine Isolierung mithilfe von Systemaufruf-Filtering durchführt, während Flatpak einen vom System separaten Container erstellt und mit umfangreichen Runtime-Sets arbeitet, die nicht als Pakete, sondern als standardisierte Systemumgebungen bereitgestellt werden (zum Beispiel alle Bibliotheken, die zur Ausführung von GNOME- oder KDE-Anwendungen erforderlich sind).

Neben der standardisierten Systemumgebung (Runtime), die über einen speziellen Repository, 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. OSTree, при которой образ атомарно обновляется из Git-подобного хранилища, позволяющего применять методы версионного контроля к компонентам дистрибутива (например можно быстро откатить систему к прошлому состоянию). RPM-пакеты транслируются в репозиторий OSTree при помощи специальной прослойки rpm-ostree. 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, и сетевой подсистеме. Вывод графики и организация ввода werden umgesetzt 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 genutzt. Schicht Bubblewrap 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

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster