új stabil eszközkészlet ága , amely egy olyan rendszert biztosít, amely lehetővé teszi az önálló csomagok elkészítését, amelyek nem kötődnek egy adott Linux disztribúcióhoz, és egy speciális konténerben futnak, elválasztva az alkalmazást a rendszertől. A Flatpak-csomagok futtatása támogatott az Arch Linux, , Debian, Fedora, Gentoo, Mageia, Linux Mint és Ubuntu disztribúciókon. A Flatpak csomagok a Fedora tárolójában találhatók, és támogatják a GNOME alapértelmezett alkalmazáskezelő programját.
Kulcsok a Flatpak 1.4 ágon:
- Megváltozott a külső tárolók beállításainak szervezése. Az /etc/flatpak/remotes.d könyvtárban a .conf fájlok helyett mostantól a .flatpakrepo fájlok használatosak, amelyeket automatikusan importálnak a flatpak első használatakor. Ezek a fájlok szabadon szerkeszthetők és törölhetők, hasonlóan a manuálisan hozzáadott tárolókhoz;
- Jelentősen megváltozott a rendszerszintű csomagok telepítéseinek szervezése. A korábbi kiadásokban először a csomag a felhasználó ideiglenes mappájába telepítésre került, majd a processz a system-helper segítségével került átvitelre a rendszerbe ebből a mappából. Ez a megközelítés nagy lemezhasználathoz, felesleges I/O-hoz és potenciális biztonsági problémákhoz vezetett. Az új verzióban a rendszerszintű csomagok telepítésére egy speciális új FUSE fájlrendszert használnak, amelybe a felhasználó írhat adatokat, de a felírás befejezése után a rögzített fájlokhoz való hozzáférést a felhasználótól megtiltják. Az új megközelítés a flatpak számára külön felhasználó létrehozását (alapértelmezés szerint «flatpak») és az SELinux szabályok módosítását feltételezi;
- Hozzáadva a lehetőség, hogy a kliensoldalon szűrőket definiáljanak a külső tárolókra. A szűrőkkel korlátozhatók a tárolóban látható alkalmazások, fekete és fehér listák modelljét használva;
- Hozzáadva egy könyvtári API a külső tárolók flatpakref fájlokból való hozzáadásához;
- Hozzáadva seccomp profil a Dockerhez, amely lehetővé teszi a flatpak indítását konténerekben;
- Javult a több forrásból történő P2P telepítés (USB meghajtók vagy helyi hálózat révén);
- A «flatpak remote-ls» parancsban automatikus szűrés biztosított azok számára az alkalmazások számára, amelyek támogatási ideje lejárt;
- A «flatpak remote-ls» és «flatpak remote-info» parancsokhoz hozzáadva egy «—cached» opciót, amely lehetővé teszi az információk helyi gyorsítótárazott adatok alapján történő lekérését.
- Megjelent a lehetőség a csomag élettartama végének verziójának megadására, ami után felajánlás érkezik az új ágra való áttérésre.
- Hozzáadva az «—socket=pcsc» opció a smart kártyákhoz való hozzáférés érdekében.
- Támogatás került bevezetésre azon rendszerekhez, ahol több NVIDIA grafikus kártya található.
- Bevezetésre került a dconf környezetbe helyezett támogatás.
- A build-update-repo parancshoz új opciók kerültek, mint a «—no-update-[summary,appstream]» és a «—static-delta-ignore-ref=PATTERN».
- Jelentősen megnövekedett az appstream ágak regenerálásának sebessége nagyobb tárolók esetén.
Ne feledjük, hogy a Flatpak lehetőséget ad az alkalmazásfejlesztőknek, hogy egyszerűsítsék programjaik terjesztését, amelyek nem tartoznak a disztribúciók hivatalos tárolóiba, azáltal, hogy egy univerzális konténert, anélkül, hogy külön összeállításokat kellene készíteni minden disztribúcióhoz. A biztonság iránt aggódó felhasználók számára a Flatpak lehetővé teszi a potenciálisan kockázatos alkalmazások konténerben történő futtatását, hozzáférést biztosítva csak a hálózati funkciókhoz és a felhasználó alkalmazással kapcsolatos fájljaihoz. Az újdonságok iránt érdeklődő felhasználók számára a Flatpak lehetővé teszi a legfrissebb teszt- és stabil alkalmazások telepítését a rendszer megváltoztatása nélkül. Például jelenleg a Flatpak csomagok már a LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio stb. számára.
A csomag méretének csökkentése érdekében csak az alkalmazásra jellemző függőségeket tartalmaz, míg az alapvető rendszer- és grafikus könyvtárakat (Gtk+, Qt, GNOME és KDE könyvtárak stb.) szabványos típusú runtime környezetekként formálták meg. A Flatpak kulcsfontosságú különbsége a Snap-től az, hogy a Snap a fő rendszer környezeti összetevőit és a rendszerhívások szűrésen alapuló elszigeteltséget használ, míg a Flatpak külön konténert hoz létre a rendszertől függetlenül, és nagyobb runtime készletekkel dolgozik, biztosítva nem csomagokat, hanem típusos rendszerkörnyezeteket (például minden könyvtár, ami a GNOME vagy KDE programok működéséhez szükséges).
A speciális telepítés útján telepített standard rendszerkörnyezet (runtime) mellett. , kiegészítő függőségek (bundle) kerülnek telepítésre, amelyek szükségesek az alkalmazás működéséhez. A runtime és a bundle összessége alkotja a konténer tartalmát, miközben a runtime külön telepítve van, és több konténerhez is kapcsolódik, ami lehetővé teszi a rendszerszámok duplikálásának elkerülését. Egy rendszer több különböző runtime-ot (GNOME, KDE) vagy egyetlen runtime több verzióját (GNOME 3.26, GNOME 3.28) is telepíthet. Az alkalmazás konténerje a függőségeket a specifikus runtime-hoz köti, figyelembe véve azokat a különböző csomagokat, amelyek a runtime-ot alkotják. Minden hiányzó elem közvetlenül az alkalmazással együtt kerül csomagolásra. A konténer létrehozásakor a runtime tartalma a /usr könyvtárnak megfelelően van csatolva, míg a bundle a /app könyvtárba kerül.
A runtime és az alkalmazás konténerek tartalma a következő technológia felhasználásával jön létre , amely lehetővé teszi a képek atomikus frissítését egy Git-szerű tárolóból, amely lehetővé teszi a verziókezelési módszerek alkalmazását a disztribúció összetevőin (például gyorsan vissza lehet állítani a rendszert egy korábbi állapotára). Az RPM csomagokat egy speciális réteg segítségével transzformálják az OSTree tárolóba . A csomagok külön telepítése és frissítése a munkakörnyezeten belül nem támogatott, a rendszer nem a különböző összetevők szintjén frissül, hanem teljes mértékben, atomikusan változtatva meg az állapotát. Az incrementális frissítések alkalmazására vonatkozó eszközök állnak rendelkezésre, amelyek megszüntetik a teljes kép cseréjének szükségességét minden frissítéskor.
A létrehozott elszigetelt környezet teljesen független a használt disztribúciótól, és megfelelő csomagbeállítások mellett nem fér hozzá a felhasználói fájlokhoz és folyamatokhoz, illetve az alap rendszerhez, nem tud közvetlenül a hardverhez kapcsolódni, kivéve a DRI-n keresztüli kimenetet, és a hálózati alrendszert. A grafika kimenete és a bevitel szervezése a Wayland protokoll segítségével vagy az X11 socket átirányításával. A külső környezettel való interakció a DBus üzenetváltó rendszer és egy speciális Portals API alapján történik. Az izoláció érdekében a layer és a konténeres virtualizáció hagyományos Linux technológiái, amelyek cgroups, névterek (namespaces), Seccomp és SELinux használatán alapulnak. A hangkimenethez a PulseAudio szolgáltatás szükséges.
Forrás: opennet.ru
