Release des Systems für autarke Flatpak-Pakete 1.6.0

Veröffentlicht neue stabile Version des Tools Flatpak 1.6, das ein System zur Erstellung von autarken Paketen bereitstellt, 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 Ausführung von Flatpak-Paketen wird für Arch Linux unterstützt, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint und Ubuntu unterstützt. Flatpak-Pakete sind im Fedora-Repository enthalten und werden in der Standardanwendung zur Verwaltung von Anwendungen GNOME unterstützt.

Hauptmerkmale Neuheiten in der Version Flatpak 1.6:

  • Im API Portal wurde eine Methode CreateUpdateMonitor hinzugefügt, die es Anwendungen ermöglicht, das Auftreten von Updates zu verfolgen und die Installation eines verfügbaren Updates anzufordern.
    Um den Anwendungsrechten zur selbstständigen Installation von Updates zu widersprechen, kann der Befehl „flatpak permission-set flatpak updates $APPID no“ verwendet werden (wenn „ask“ anstelle von „no“ angegeben wird, wird jedes Mal ein Dialog zur Bestätigung des Updates angezeigt);


  • Um die Erstellung von Handlern zu erleichtern, wurde die Bibliothek
    libportal, die die Verarbeitung von Ereignissen ohne direkte Verwendung der API Portal und das Parsen von Signalen, die über D-Bus empfangen werden, ermöglicht, vorgeschlagen.
    Libportal bietet einfache asynchron funktionierende Schichten für die meisten „Portale«;
  • Eine neue Berechtigung „—socket=cups“ wurde hinzugefügt, um direkten Zugriff auf den CUPS-Druckserver zu ermöglichen;
  • Das Protokoll und die API zur Handhabung der Authentifizierung wurden geändert. Ein Authentifizierer für OCI (Open Container Initiative) wurde hinzugefügt. Unterstützung für die automatische Installation von Authentifizierern aus einem externen Flatpak-Repository wurde implementiert. In FlatpakTransaction wurde ein Callback-Handler für die Verwendung von Authentifizierung mithilfe von Benutzername und Passwort analog zur HTTP-Basisauthentifizierung hinzugefügt;
  • Unterstützung für gesicherte Anwendungen und Systeme, die eine Authentifizierung beim Download erfordern, wurde hinzugefügt;
  • Die zur Isolierung verwendete Schicht bubblewrap wurde auf die neue Version aktualisiert 0.4.0;
  • Optionale Unterstützung für Kindersicherung durch Einsatz der Bibliothek libmalcontent, die den Zugriff auf bestimmte Arten von Inhalten einschränkt;
  • Erweiterungen werden nun vor der Anwendung installiert, sodass sofort nach Abschluss der Installation eine funktionsfähige Anwendung vorliegt;
  • Die Handhabung von temporären Dateien wurde überarbeitet, was die Nutzung bei unzureichendem verfügbarem Speicherplatz verbessert hat;
  • Um den Befehl „flatpak enter“ auszuführen, ist nun kein sudo mehr erforderlich;
  • Die Portale bieten die Möglichkeit, eingebettete isolierte Umgebungen (Sub-Sandbox) für untergeordnete Prozesse zu starten;
  • Neue Befehle „flatpak permission-set“ und „permission-remove“ zum Verwalten der Berechtigungen wurden hinzugefügt;
  • Die Option „flatpak install —or-update“ wurde hinzugefügt, die ein Update durchführt, wenn die Anwendung bereits installiert ist;
  • Der Befehl „flatpak mask“ wurde hinzugefügt, um die Version zu fixieren und die Installation von Updates zu verbieten;
  • Für OCI (Open Container Initiative)-Images wurde die Unterstützung für das Binden von Labels, die Erstellung einer Änderungsverlaufshistorie im Image und die Einbeziehung von Docker-MIME-Typen zusätzlich zu OCI-MIME-Typen hinzugefügt;
  • In die Einstellungen wurde der Schlüssel default-languages aufgenommen, um die Liste der verwendeten Sprachen neben der Systemliste festzulegen.

Wir erinnern daran, dass Flatpak-Anwendungsentwicklern ermöglicht, die Verbreitung ihrer Programme zu vereinfachen, die nicht in den offiziellen Repositories von Distributionen enthalten sind, dank Vorbereitung eines universellen Containers, ohne separate Builds für jede Distribution erstellen zu müssen. Benutzern, die Wert auf Sicherheit legen, ermöglicht es Flatpak, eine fragwürdige Anwendung in einem Container auszuführen, der nur Zugriff auf die Netzwerkfunktionen und die Benutzerdaten, die mit der Anwendung verbunden sind, gewährt. Benutzern, die an Neuheiten interessiert sind, ermöglicht es Flatpak, die neuesten Test- und stabilen Versionen von Anwendungen zu installieren, ohne dass Änderungen am System erforderlich sind. Zum Beispiel werden derzeit Flatpak-Pakete bereits gebaut 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, beinhaltet es nur spezifische Abhängigkeiten für die Anwendung, während grundlegende System- und Grafikbibliotheken (Gtk+, Qt, GNOME- und KDE-Bibliotheken usw.) in Form von modularen Standard-Runtime-Umgebungen bereitgestellt werden. Der Hauptunterschied zwischen Flatpak und Snap besteht darin, dass Snap die Komponenten der Hauptsystemumgebung und eine Isolation auf Basis von Systemaufruf-Filterung verwendet, während Flatpak einen vom System separaten Container erzeugt und mit großen Runtime-Sets operiert, die anstelle von Paketen typische Systemumgebungen (zum Beispiel alle Bibliotheken, die zur Ausführung von GNOME- oder KDE-Programmen erforderlich sind) als Abhängigkeiten bereitstellt.

Neben der typischen Systemumgebung (Runtime), die über ein spezielles Repository, werden zusätzliche Abhängigkeiten (Bundle) geliefert, die für die Ausführung der Anwendung erforderlich sind. Zusammen bilden Runtime und Bundle die Inhalte des Containers, wobei die Runtime separat installiert und mehreren Containern zugeordnet wird, was eine Duplizierung gemeinsamer Systemdateien für Container vermeidet. Auf 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 verwendet als Abhängigkeit nur eine bestimmte Runtime und ignoriert die einzelnen Pakete, 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 das Verzeichnis /usr eingebunden, während das Bundle im Verzeichnis /app eingebunden wird.

Die Inhalte der Runtime und der Anwendungscontainer werden mithilfe der Technologie OSTree, bei der das Image atomar aus einem Git-ähnlichen Repository aktualisiert wird, was es ermöglicht, Methoden der Versionskontrolle auf die Komponenten der Distribution anzuwenden (z.B. können Sie das System schnell auf einen früheren Zustand zurücksetzen). RPM-Pakete werden mithilfe einer speziellen Schicht in das OSTree-Repository übertragen, 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 vollständig aktualisiert und ändert atomar seinen Zustand. Es werden Mittel bereitgestellt, um inkrementelle Updates anzuwenden, die die Notwendigkeit einer vollständigen Bildersetzung bei jedem Update beseitigen.

Die gebildete isolierte Umgebung ist vollständig unabhängig von der verwendeten Distribution, und bei entsprechender Paketkonfiguration hat sie keinen Zugriff auf Dateien und Prozesse des Benutzers oder des Hauptsystems, kann nicht direkt auf die Hardware zugreifen, mit Ausnahme der Ausgabe über DRI, und das Netzwerk-Subsystem. Die Ausgabe der Grafik und die Organisation der Eingabe umgesetzt durch das Protokoll Wayland oder durch das Durchreichen des X11-Sockets. Die Interaktion mit der externen Umgebung erfolgt auf Basis des Nachrichtenaustauschsystems DBus und einer speziellen API für Portale. Zur Isolation wird verwendet Schicht Bubblewrap und traditionellen Linux-Technologien zur Container-Virtualisierung, die auf der Verwendung von cgroups, Namensräumen (namespaces), Seccomp und SELinux basieren. Für die Audioausgabe wird PulseAudio verwendet.

Quelle: opennet.ru

60GB SSD 8Gb DDR4