FLATPAK Revoluce v distribuci linuxových aplikací? Jiří Eischmann, Red Hat Desktop Engineering Manager
Problémy s distribucí softwaru pro Linux Aplikace nejsou odděleny od samotného systému. Současné procesy pro přidávání softwaru do distribucí nejsou škálovatelné. Software třetích stran se do systému instaluje v nezabezpečené formě.
Cíle Třetí strany mohou vytvářet a distribuovat své aplikace pro více distribucí. Aplikace by měly mít pokud možno co nejmenší přístup do zbytku systému.
Historie Autorem Alex Larsson. První experimenty pod názvem glick v roce 2007. Myšlenka současného řešení se začala rozvíjet na GUADEC 2012 pod pracovním názvem LinuxApps. Vývoj pod názvem Xdg-app započal v prosinci 2014. Oficiálně oznámeno pod finálním názvem v červenci 2016.
Použité technologie Kernel cgroups, namespaces, bind mounts, seccomp. Bubblewrap. OSTree. DBus. AppStream. OCI format.
Jak to funguje
Základní pojmy Runtime definované prostředí pro běh aplikace, připojuje se v kontejneru do /usr. SDK runtime + komponenty a nástroje pro sestavování aplikací. Aplikační bundle soubory aplikace, závislosti, které chybí v runtimu, metadata, exportované soubory (soubor.desktop, ikony, appdata.xml, dbus služba, ). Portály kontrolovaný přístup aplikací k prostředkům mimo sandbox (soubory, tisk, otevírání URI, snímky obrazovky, upozornění, stav sítě, proxy, zařízení)
Vytváření aplikací flatpak build provádění jednotlivých úkonů. flatpak-builder automatizace sestavování komplexnějších aplikací. GNOME Builder integrace do IDE. Anatomie aplikace: Metadata (info o aplikaci a o tom, co je potřeba k jejímu běhu) /files (soubory, které tvoří aplikaci) /files/bin (binární soubory aplikace) /export (soubory, které se exportují mimo sandbox)
Vytváření aplikací - manifest
Dostupné runtimy Freedesktop.org a GNOME (postavené na Yocto). KDE (zatím experimentální). A další experimentální (CentOS, opensuse, HawaiiOS). Lokalizační soubory lze umístit do samostatné části runtimu (org.gnome.platform org.gnome.platform.locale).
Instalace aplikací Ostatní možnosti: Soubor.flatpakrepo přidá repozitář. Soubor.flatpakref přidá repozitář a nainstaluje aplikaci. Soubor.flatpak obsahuje celou aplikaci a instrukce k její instalaci.
Integrace do grafických nástrojů Pomocí libflatpak. GNOME Software podporuje instalační soubory.flatpak, verze 3.24 bude podporovat také.flatpakref. KDE Muon podpora Flatpaku je plánována.
Dostupné aplikace GNOME (32 aplikací) KDE (19 aplikací) LibreOffice Multimediální: GNOME mvp, mvp, Spotify, Lollypop, Tomahawk, Pitivi, Pithos. Grafické: GIMP, Darktable, Blender, MyPaint, Scribus. Internet: Firefox (experimentálně), Thunderbird, Skype, HexChat, Telegram, SparkleShare. Vývojářské: MonoDevelop. Hry: Minecraft.
Dostupnost v distribucích Fedora 23 a novější. Debian Testing a novější (pro Jessie v backports). Ubuntu 16.10 (PPA pro 16.04). Arch. Gentoo (neoficiální overlay). Mageia Cauldron.
Budoucnost Infrastruktura pro sestavování a hostování aplikací pro Flatpak (pracovní označení FlatHub). Centrální katalog aplikací (pracovní označení FlatStore). Automatické generování Flatpaků z balíčků pro vytváření atomických distribucí (např. Fedora Atomic Workstation).
Omezení Flatpaku Vyšší náročnost na paměť a prostor na disku. Duplikuje opravy bezpečnostních problémů (částečně řešeno runtimy). Sdílení nastavení se zbytkem systému (vzhled, písmo, vykreslování písma, ).
Srovnání s alternativami Snap Nejen pro desktopové aplikace, ale obecně pro jakékoliv. Nevyužívá runtimy, ale vše bundluje k aplikaci. Původně umožňovaly nástroje distribuci jen přes repozitář Canonicalu. K izolaci používá AppArmor. Momentálně horší integrace do prostředí. AppImage Aplikace instaluje připojením virtuálního disku se všemi závislostmi. Funguje prakticky všude, ale má také nejvyšší paměťové nároky. Sanboxing jen dodatečně pomocí FireJail. Jen velmi základní tooling.
Otázky? flatpak.org