nová stabilní větev nástroje , který poskytuje systém pro vytváření samostatných balíčků, které nejsou vázány na konkrétní distribuce Linuxu a běží ve speciálním kontejneru, izolujícím aplikaci od zbytku systému. Podpora pro provádění Flatpak balíčků je zajištěna pro Arch Linux, , Debian, Fedora, Gentoo, Mageia, Linux Mint a Ubuntu. Balíčky s Flatpak jsou zahrnuty v repozitáři Fedora a jsou podporovány v nativním správci aplikací GNOME.
Klíčové ve větvi Flatpak 1.8:
- Byla zjednodušena realizace instalace v režimu P2P (umožňuje organizovat stahování aplikací a runtime sad prostřednictvím zprostředkujících uzlů nebo zařízení pro systémy bez připojení k síti). Podpora instalací prostřednictvím zprostředkujících hostitelů v lokální síti byla ukončena. Automatické stahování repozitářů (sideload) umístěných na lokálních USB zařízeních je ve výchozím nastavení zakázáno. Pro aktivaci prostředních lokálních repozitářů je nutné nastavit repozitář vytvořením symbolického odkazu z /var/lib/flatpak/sideload-repos nebo
/run/flatpak/sideload-repos. Изменение позволило упростить внутреннюю реализацию режима P2P и повысить его эффективность. - Byla přidána volitelná jednotka systemd pro automatické rozpoznávání dalších repozitářů na připojených externích USB zařízeních.
- Pro aplikace s přístupem k souborovému systému byl zajištěn průchod adresáře /lib hostitelského prostředí do /run/host/lib.
- Byla přidána nová oprávnění pro přístup k FS — „host-etc“ a „host-os“, která umožňují přístup k systémovým adresářům /etc a /usr.
- Pro generování efektivnějšího kódu pro parsování souborů GVariant z ostree byl zapojen .
- V konfiguračním skriptu pro sestavení byla poskytnuta možnost sestavit bez
libsystemd; - Bylo zajištěno připojení zásuvek Journal v režimu pouze pro čtení.
- Do document-export byla přidána podpora pro export adresářů.
- Byl povolen přímý přístup k zvukovým zařízením ALSA pro aplikace s přístupem k Pulseaudio.
- V API byl přidán signál „install-authenticator“, který mohou klienti používat k instalaci autentikátorů potřebných k provedení transakce.
- Bylo zajištěno použití údajů o časovém pásmu na základě /etc/localtime z hostitelského systému, což vyřešilo problémy s časovými pásmy v některých aplikacích.
- Byla ukončena instalace souboru env.d z gdm, protože generátory systemd si s touto úlohou lépe poradí.
- V nástroji create-usb je ve výchozím nastavení zahrnut export částečných potvrzení.
- Byla zajištěna dodávka souboru sysusers.d pro vytvoření potřebných uživatelů prostřednictvím systemd.
- Do příkazů „flatpak remote-add“ a „flatpak modify“ byla přidána možnost „—[no-]follow-redirect“ pro zakázání/povolení přesměrování na jiný repozitář.
- Do systému
bylo přidáno API Spawn pro získání skutečného identifikátoru procesu (PID) spuštěné aplikace. - Všechny repozitáře OCI (Open Container Initiative) byly převedeny na použití autentizátoru flatpak-oci-authenticator.
- Do příkazů „flatpak remote-info“ a „flatpak update“ byla přidána možnost „—commit=“ pro určení konkrétní verze repozitářů OCI.
- Byla přidána počáteční podpora delta-aktualizací pro repozitáře OCI.
- Byl přidán příkaz „flatpak upgrade“, který je aliasem pro příkaz „flatpak update“.
- Byly implementovány skripty pro doplňování vstupu pro shell fish.
Připomínáme, že vývojářům aplikací Flatpak umožňuje zjednodušit distribuci svých programů, které nejsou součástí oficiálních repozitářů distribucí, tím, že jediný univerzální kontejner bez vytváření oddělených sestavení pro každou distribuci. Uživatelům, kteří dbají na bezpečnost, Flatpak umožňuje spustit podezřelou aplikaci v kontejneru a poskytuje přístup pouze k síťovým funkcím a uživatelským souborům souvisejícím s aplikací. Uživatelům, kteří se zajímají o novinky, Flatpak umožňuje nainstalovat nejnovější testovací a stabilní verze aplikací bez nutnosti měnit systém. Například v současné době jsou již balíčky Flatpak pro LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio atd.
Aby se snížila velikost balíčku, zahrnuje pouze aplikaci specifické závislosti, zatímco základní systémové a grafické knihovny (Gtk+, Qt, knihovny GNOME a KDE atd.) jsou zpracovány jako plug-in standardní runtime prostředí. Klíčový rozdíl mezi Flatpak a Snap spočívá v tom, že Snap používá komponenty prostředí hlavního systému a izolaci založenou na filtrování systémových volání, zatímco Flatpak vytváří oddělený kontejner od systému a operuje s rozsáhlými runtime sadami, které poskytují jako závislosti nikoli balíčky, ale standardní systémová prostředí (například všechny knihovny potřebné pro provoz programů GNOME nebo KDE).
Kromě typického systémového prostředí (runtime), které se instaluje prostřednictvím speciálního , jsou dodávány další závislosti (bundle) potřebné pro fungování aplikace. V součtu runtime a bundle tvoří obsah kontejneru, přičemž runtime se instaluje samostatně a může být připojen k několika kontejnerům, což umožňuje vyhnout se duplicování sdílených systémových souborů. V jednom systému může být nainstalováno několik různých runtime (GNOME, KDE) nebo několik verzí jednoho runtime (GNOME 3.26, GNOME 3.28). Kontejner s aplikací jako závislost používá připojení pouze k určitému runtime, bez ohledu na jednotlivé balíčky, z nichž se runtime skládá. Všechny chybějící prvky jsou zabaleny spolu s aplikací. Při vytváření kontejneru se obsah runtime připojuje jako oddíl /usr, zatímco bundle se připojuje do adresáře /app.
Obsah runtime a kontejnerů aplikací je tvořen pomocí technologie , při níž se obraz atomárně aktualizuje z Git-podobného úložiště, což umožňuje aplikovat metody verzování na komponenty distribuce (například lze rychle vrátit systém do předchozího stavu). RPM balíčky jsou transformovány do repozitáře OSTree pomocí speciální vrstvy . Oddělená instalace a aktualizace balíčků uvnitř pracovního prostředí není podporována, systém se aktualizuje nikoliv na úrovni jednotlivých komponentů, ale celkově, atomárně mění své stavy. Jsou poskytovány nástroje pro inkrementální aplikaci aktualizací, které zbavují potřeby kompletního nahrazení obrazu při každé aktualizaci.
Vytvářené izolované prostředí je zcela nezávislé na používané distribuci a při správném nastavení balíčku nemá přístup k souborům a procesům uživatele nebo základního systému, nemůže přímo komunikovat s hardwarem, kromě výstupu přes DRI, a síťovým subsystémem. Výstup grafiky a organizace vstupu pomocí protokolu Wayland nebo prostřednictvím přesměrování socketu X11. Interakce s vnějším prostředím je postavena na systému pro výměnu zpráv DBus a speciálním API Portals. Pro izolaci vrstva a tradiční technologie kontejnerové virtualizace pro Linux založené na využití cgroups, prostorů názvů (namespaces), Seccomp a SELinux. Pro přehrávání zvuku se používá PulseAudio.
Zdroj: opennet.ru
