A Flatpak 1.18.0 rendszerének kiadása

Másfél év fejlesztés után megjelent a Flatpak 1.18 új stabil ága, amely egy önálló csomagok építésére szolgáló rendszert biztosít, amely független a konkrét Linux disztribúcióktól, és egy különleges konténerben fut, amely elszigeteli az alkalmazást a többi rendszertől. A Flatpak csomagok végrehajtásának támogatása biztosított a Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux és Ubuntu számára. A Flatpak csomagok elérhetőek a Fedora tárolóban, és támogatottak a GNOME és KDE natív alkalmazáskezelő programjaiban.

Kulcsfontosságú újítások a Flatpak 1.18 verzióban:

  • Megvalósult a feltételes engedélyek (conditional permission) támogatása, amely lehetővé teszi, hogy engedélykéréskor ellenőrizzük, hogy van-e bizonyos képesség a rendszeren vagy a runtime-on. Például, ha eszközhozzáférés igénylésénél a '–device=all' helyett kérhetjük a '–device-if=all:!has-input-device –device=input' engedélyt, amely csak az input eszközökhöz biztosít hozzáférést, vagy visszaugrik az összes eszközhöz való hozzáférésre, ha a szelektív hozzáférés nem támogatott a runtime-ban. Hasonlóképpen kérhető hozzáférés az USB eszközökhöz ('has-usb-device' és 'has-usb-portal') vagy megosztott alrendszerekhez.
  • Hozzáférés engedélyezve a /dev/ntsync eszközhöz a
    NTSYNC kernel modulhoz való hozzáféréshez, amely a Windows NT kernelben alkalmazott szinkronizáló primitíveket valósít meg, és jelentősen javítja a Wine-nal futó Windows játékok teljesítményét.
  • Az Intel Xe GPU számára aktiválva van a VA-API támogatás a videók hardveres gyorsításához.
  • Lehetővé vált a /dev/kfd (Kernel Fusion Driver) eszközhöz való hozzáférés a DRI eszközökhöz biztosított engedélyek felhasználásával. A kfd meghajtó lehetővé teszi a számítások közvetlen végrehajtását az AMD GPU-ken az AMD ROCm, HIP és OpenCL használatával.
  • Támogatva van a parancssori opciók használata a könyvtárak hozzáférésének átvezetésére elszigetelt alkalmazásokba.
  • Hozzáadva a 'preinstall.d' könyvtár támogatása, amely meghatározza a telepített Flatpak alkalmazások listáját (a Flatpak alkalmazások operációs rendszerbe való integrálásához).
  • Engedélyezett a közvetlen telepítés a konténerformátumú OCI képekből, amelyek saját OCI tárolókból és helyi archívumokból tölthetők le.
  • A «flatpak install —from» parancshoz hozzáadva a «flatpak+https://» URI támogatása.
  • A «flatpak run» parancshoz hozzáadva a «—clear-env» opció, amely lehetővé teszi a környezeti változók törlését az alkalmazás elindítása előtt.
  • Lehetővé vált a gazda környezet gyökérkönyvtárának exportálása egy izolált alkalmazáskörnyezetbe, amely hozzáféréssel bír a /run/host/root könyvtáron keresztül.
  • Hozzáadva a parancsok végrehajtásának eredményeinek JSON formátumban történő kiírása.
  • Fokozott izoláció az építési környezetben — a «flatpak build» parancs alapértelmezés szerint már nem biztosít hozzáférést a gazdagépre.
  • Hozzáadva a «reinstall» parancs a függőségek (bundle) újratelepítéséhez.
  • Az alapértelmezett D-Bus beállításokat áthelyezték az /etc könyvtárból az /usr könyvtárba.
  • Csökkent a betöltési idő a fish parancssori értelmező használatakor.
  • A libflatpak-hoz hozzáadva egy funkció a konfigurációk létrehozási idejének lekérdezésére, ami lehetővé teszi olyan alkalmazások, mint a GNOME Software számára, hogy meghatározzák, hogy a gyorsítótárazott adataik frissítésre szorulnak.
  • Eltávolítva az http_backend építési opciót, a http/https letöltéshez a libsoup2 helyett a libcurl könyvtárat használják.
  • Alapértelmezés szerint engedélyezve van az escape szekvenciák használata a művelet előrehaladásának jelzésére.
  • Engedélyezve van az eszközök hozzáférési jogainak átadása a Flatpak portálokon keresztül létrehozott beágyazott sandbox környezetekbe.
  • Az OCI képként érkező alkalmazások számára működik az «extra-data» mechanizmus, például lehetővé téve a h.265 videók lejátszását Flatpak csomagokban a Fedora Linux rendszeren.
  • Hozzáadva a függőségek (OCI bundle) tömörítésének támogatása zstd algoritmus használatával, ami hatékonyabban tömöríti az adatokat. Az alapértelmezett tömörítés továbbra is gzip, amely maximális kompatibilitást biztosít.

A Flatpak leegyszerűsíti a programok terjesztését, amelyek nem tartoznak a disztribúciók alapértelmezett tárolói közé, azáltal, hogy egy univerzális konténert készít, amely megszabadítja a fejlesztőket az alábbi feladat alól: különféle kiadások létrehozása minden egyes disztribúcióhoz. Azok a felhasználók, akik aggodalommal kezelik a biztonságot, a Flatpak segítségével futtathatják a gyanús alkalmazásokat egy konténerben, lehetővé téve a szükséges hálózati funkciókhoz és felhasználói fájlokhoz való szelektív hozzáférést. Azok a felhasználók, akiket érdekelnek az újdonságok, a Flatpak révén a legfrissebb teszt- és stabil alkalmazáskiadásokat telepíthetik anélkül, hogy változtatniuk kellene a rendszeren. Például a Flatpak csomagok készülnek a LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Telegram Desktop, Android Studio stb. számára.

A méret csökkentése érdekében a csomagba csak az alkalmazás-specifikus függőségeket foglalják bele. Az alap rendszer- és grafikus könyvtárak (GTK, Qt, GNOME és KDE könyvtárak stb.) plug-in szerű, szabványos runtime-környezetek formájában kerülnek be. A Flatpak kulcsfontosságú különbsége a Snap-től abban rejlik, hogy a Snap a fő rendszer környezeteiből származó komponenseket és rendszerhívások szűrésén alapuló elszigetelést használ, míg a Flatpak egy a rendszertől elkülönült konténert hoz létre, és nagyobb runtime-készletekkel működik, azaz nem csomagokat, hanem szabványos rendszerkörnyezeteket biztosít (például az összes könyvtárat, ami szükséges a GNOME vagy KDE programok működéséhez).

A speciális tárolón keresztül telepített standard rendszerkörnyezet (runtime) mellett további függőségek (bundle) is rendelkezésre állnak, amelyek az alkalmazás működéséhez szükségesek. A «runtime» és a «bundle» összessége alkotja a konténer tartalmát, ahol a «runtime» külön települ, és egyszerre több konténerhez is kapcsolódik, így elkerülhető a konténerek közötti közös rendszerfájlok duplikálása.

Egy rendszerben több különböző „runtime” (GNOME, KDE) vagy ugyanannak a „runtime”-nak több verziója (GNOME 50, GNOME 49) telepíthető. Az alkalmazás függőségeként szereplő konténer csak egy adott „runtime”-hoz kötődik, figyelmen kívül hagyva a választott „runtime”-ot létrehozó egyes csomagokat. Minden hiányzó elem közvetlenül az alkalmazással együtt van becsomagolva. A konténer létrehozásakor a „runtime” tartalma a /usr partícióra, míg a „bundle” a /app könyvtárba van csatolva.

A „runtime” és az alkalmazáskonténerek összetevői az OSTree technológia segítségével készülnek, amely során a kép atomikusan frissül egy Git-szerű tárolóból, lehetővé téve a verziókezelési módszerek alkalmazását a disztribúció összetevőin (például a rendszer gyorsan visszaállítható egy korábbi állapotba). Az RPM-csomagok az rpm-ostree rétegen keresztül transzformálódnak az OSTree tárolóba.

A munkahelyi környezetben a csomagok szelektív telepítése és frissítése nem támogatott — a rendszer nem a különálló összetevők szintjén frissül, hanem egészben, atomikusan változtatva meg az állapotát. Azért eszközök állnak rendelkezésre az incrementális frissítések alkalmazására, amelyek megszüntetik a teljes képcserét minden frissítéskor.

Az így kialakított izolált környezet nem függ a használt disztribúciótól, és megfelelő csomagbeállítások mellett nincs hozzáférése a felhasználó vagy a fő rendszer fájljaihoz és folyamataihoz, valamint nem férhet hozzá közvetlenül a hardverhez, kivéve a DRI-n keresztüli kimenetet. A grafikai kimenet és a bemeneti szervezés a Wayland protokoll vagy az X11 socketek átjárása révén valósul meg. A külső környezettel való kölcsönhatás a DBus üzenetküldő rendszer és egy speciális API Portals segítségével van megvalósítva.

Az izoláció érdekében a Bubblewrap réteget és a Linux konténeres virtualizáció hagyományos technológiáit használják, amelyek a cgroups, névtér (namespaces), Seccomp és SELinux felhasználásán alapulnak. A csomag létrehozásakor az izoláció letiltható, amit egyes csomagok fejlesztői használnak a fájlrendszer és az összes eszköz teljes hozzáférésének megszerzésére a rendszerben.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster