Tolle Neuigkeiten für Montag,% Benutzername%. Kürzlich wurde ein stabiler Zweig des Flatpak 1.10-Toolkits veröffentlicht . Es wurde entwickelt, um eigenständige Pakete zu erstellen, die nicht an bestimmte Linux-Distributionen gebunden sind und in einem speziellen Container ausgeführt werden, der die Anwendung vom System isoliert.
Flatpacks funktionieren garantiert für Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux und Ubuntu. Sie sind auch Teil des Fedora-Repositorys und werden von der Standard-GNOME-Anwendungsverwaltungssoftware unterstützt. Unter dem Strich - mehr über das neue Produkt und seine Fähigkeiten.
Was ist Flatpak?
Mit diesem Toolkit können Entwickler die Verteilung ihrer eigenen Programme vereinfachen, die nicht in den Standardverteilungsrepositorys enthalten sind. Wie wird das umgesetzt? Ein Universalbehälter wird vorbereitet, ohne für jedes Verteilungskit separate Baugruppen zu bilden.
Das Toolkit bietet außerdem ein hohes Maß an Informationssicherheit, sodass eine fragwürdige Anwendung in einem isolierten Container ausgeführt werden kann. In diesem Fall wird der Zugriff nur auf die Netzwerkfunktionen und Benutzerdateien gewährt, die der Anwendung zugeordnet sind. Außerdem können Sie mit Flatpak die neuesten Versionen von Anwendungen installieren, ohne dass Systemänderungen erforderlich sind. Daher werden Flatpak-Pakete für LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio-Code, VLC, Slack, Skype, Telegramm-Desktop, Android Studio und Dutzende anderer Anwendungen vorbereitet.
Um die Größe des Pakets zu reduzieren, haben die Entwickler nur anwendungsspezifische Abhängigkeiten aufgenommen. Alle Hauptbibliotheken sind jedoch als Plug-in-Laufzeitanwendungen konzipiert. Flatpack hat einen wesentlichen Unterschied zu Snap - letzteres verwendet Systemumgebungskomponenten und Isolation basierend auf Syscall-Filterung. Flatpack erstellt jedoch einen vom System getrennten Container, der mit großen Laufzeitsätzen arbeitet, sodass keine Pakete als Abhängigkeiten bereitgestellt werden, sondern typische Systemumgebungen. Dies können alle Bibliotheken sein, die GNOME / KDE-Programme ausführen müssen.
In der typischen Systemumgebung werden zusätzlich zur Laufzeit zusätzliche Abhängigkeiten installiert, die erforderlich sind, damit die Anwendung ordnungsgemäß funktioniert. Die Hauptsystemumgebung und diese Abhängigkeiten bilden den Kern des Containers. Dementsprechend wird die Laufzeit separat installiert und an mehrere Container gleichzeitig gebunden. Dies ermöglicht es, auf die Duplizierung von Systemdateien zu verzichten, die Containern gemeinsam sind.
Auf demselben System können mehrere verschiedene Laufzeit- oder mehrere Versionen derselben Laufzeit installiert werden. Der Container mit der Anwendung als Abhängigkeit verwendet die Bindung an eine bestimmte Laufzeit, ohne die einzelnen Pakete zu berücksichtigen, aus denen die Laufzeit besteht. Fehlende Elemente werden mit der App verpackt. Wenn der Container erstellt wird, wird der Laufzeitinhalt als Abschnitt / usr bereitgestellt, und das Bundle wird im Verzeichnis / app bereitgestellt.
Das Füllen von Laufzeit- und Anwendungscontainern erfolgt mithilfe der OSTree-Technologie. In diesem Fall wird das Image aus einem Git-ähnlichen Repository aktualisiert. Dies geschieht, damit Versionskontrollmethoden auf Verteilungskomponenten angewendet werden können. Beispielsweise kann ein Benutzer das System auf einen vorherigen Status zurücksetzen. Es ist hervorzuheben, dass RPM-Pakete mithilfe eines speziellen Layers rpm-ostree in das OSTree-Repository übersetzt werden.
Die separate Installation und Aktualisierung von Paketen in der Arbeitsumgebung wird nicht unterstützt, daher wird das System als Ganzes und nicht auf der Ebene einzelner Komponenten aktualisiert. Es gibt auch Tools für die inkrementelle Anwendung von Updates, sodass das Image bei jedem Update nicht mehr vollständig ersetzt werden muss.
Die Sandbox-Umgebung ist unabhängig von der von Ihnen verwendeten Distribution. Mit den entsprechenden Paketeinstellungen hat die Umgebung keinen Zugriff auf die Dateien und Prozesse des Benutzers oder des Hostsystems. Außerdem kann die Umgebung nicht direkt auf die Geräte und das Netzwerksubsystem zugreifen. Das Wayland-Protokoll und die X11-Socket-Weiterleitung werden für die Ausgabe und Eingabe von Grafiken verwendet. Die Interaktion mit der externen Umgebung basiert auf dem DBus-Messagingsystem und der speziellen Portals-API.
Zur Isolierung werden die Bubblewrap-Schicht und Standard-Containervirtualisierungstechnologien verwendet. Sie basieren auf cgroups, Namespaces, Seccomp und SELinux. Der Ton wird mit PulseAudio ausgegeben. Die Isolierung kann bei Bedarf ausgeschaltet werden.
Was gibt's Neues?
- , , . OSTree. , . , . , , , 100 . , Flatpack . , 6.6 (1.8 ), x86-64 — 2.7 (554 ). 20 .
- «flatpak pin» runtime. runtime, , .
- runtime ( ).
- , , "/org/gnome/sound-juicer", «org.gnome.SoundJuicer».
- os-release .
- tcsh.
- , .
- .
- API, flatpak_installation_list_pinned_refs, flatpak_transaction_set_disable_auto_pin, flatpak_transaction_set_include_unused_uninstall_ops, flatpak_transaction_operation_get_subpaths, flatpak_transaction_operation_get_requires_authentication.
- GCC 11.
- PulseAudio .
- , . , - , .
- root .