Pas një vit e gjysmë zhvillimi, është publikuar dega e re e stabilizuar e veglave Flatpak 1.18, e cila ofron një sistem për ndërtimin e pakove të vetë-mjaftueshme, të pa lidhura me distribucione të caktuara Linux dhe që ekzekutohen në një kontejner të veçantë, duke izoluara aplikacionin nga sistemi tjetër. Mbështetje për ekzekutimin e pakove Flatpak është siguruar për Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux dhe Ubuntu. Paketat me Flatpak janë përfshirë në repositorin e Fedora dhe mbështeten në programet e menaxhimit të aplikacioneve GNOME dhe KDE.
Risitet kryesore në degen Flatpak 1.18:
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r autorizimet kushtore (conditional permission), tĂ« cilat lejojnĂ« qĂ« gjatĂ« kĂ«rkesĂ«s pĂ«r autorizim tĂ« verifikohet prania e mundĂ«sive tĂ« caktuara nĂ« sistem apo nĂ« runtime. PĂ«r shembull, nĂ« rast se kĂ«rkohet qasje nĂ« pajisjen e hyrjes, nĂ« vend tĂ« "âdevice=all" mund tĂ« kĂ«rkohet autorizimi "âdevice-if=all:!has-input-device âdevice=input", i cili do tĂ« ofrojĂ« akses vetĂ«m nĂ« pajisjet e hyrjes ose do tĂ« kthehet nĂ« akses nĂ« tĂ« gjitha pajisjet nĂ«se ofrimi i pĂ«rzgjedhur i aksesit nuk mbĂ«shtetet nĂ« runtime. Po ashtu, mund tĂ« kĂ«rkohet qasje nĂ« pajisjet USB ("has-usb-device" dhe "has-usb-portal") ose nĂ« nĂ«n-sistemet e ndara.
- ĂshtĂ« lejuar qasje nĂ« pajisjen /dev/ntsync pĂ«r t'u lidhur me
modulin e kernelit NTSYNC, i cili implementon një set primitivash për sinkronizimin, të përdorura në kernelin Windows NT dhe që lejojnë një rritje të ndjeshme të performancës së lojërave Windows, që ekzekutohen përmes Wine. - Për GPU Intel Xe është përfshirë mbështetje për API VA-API për përshpejtimin hardueror të dekodimit të videove.
- ĂshtĂ« realizuar mundĂ«sia e qasjes nĂ« pajisjen /dev/kfd (Kernel Fusion Driver) duke pĂ«rdorur autorizimet e ofruara pĂ«r pajisjet DRI. Drejtori kfd implementon njĂ« ndĂ«rfaqe pĂ«r ekzekutimin e drejtpĂ«rdrejtĂ« tĂ« llogaritjeve nĂ« GPU-nĂ« AMD nga aplikacione qĂ« pĂ«rdorin AMD ROCm, HIP dhe OpenCL.
- është shtuar mbështetje për përdorimin e opsioneve të komandës për kalimin e aksesit në katalogë në aplikacionet e izoluara.
- është shtuar mbështetje për katalogun "preinstall.d", që përcakton listën e aplikacioneve Flatpak të parainstaluara (përfshirë aplikacionet Flatpak në sistemin operativ).
- ĂshtĂ« lejuar instalimi direkt i aplikacioneve nga imazhet e kontejnerĂ«ve nĂ« formatin OCI, tĂ« cilat mund tĂ« shkarkohen nga repositorĂ«t e tyre OCI dhe arkivat lokale.
- NĂ« komandĂ«n "flatpak install âfrom" Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r URI-nĂ« "flatpak+https://".
- Opcioni «âclear-env» Ă«shtĂ« shtuar nĂ« komandĂ«n «flatpak run» pĂ«r tĂ« pastruar variablat e mjedisit para nisjes sĂ« aplikacionit.
- Ofrohet mundësia për të eksportuar katalogun rrënjësor të mjedisit të host-it në një mjedis të izoluar aplikacioni, me akses përmes katalogut /run/host/root.
- ĂshtĂ« shtuar mundĂ«sia pĂ«r tĂ« nxjerrĂ« rezultatin e ekzekutimit tĂ« komandave nĂ« formatin JSON.
- Izolimi i mjedisit tĂ« ndĂ«rtimit Ă«shtĂ« pĂ«rforcuar â komanda «flatpak build» tani nuk ofron akses nĂ« host nĂ« mĂ«nyrĂ« default.
- ĂshtĂ« shtuar komanda «reinstall» pĂ«r riinstalimin e varĂ«sive (bundle).
- Konfigurimet e D-Bus janë transferuar me default nga katalogu /etc në /usr.
- Koha e nisjes është shkurtar kur përdoret interpretorin e komandave fish.
- Në libflatpak është shtuar një funksion për të marrë informacion mbi kohën e krijimit të konfigurimit, duke lejuar aplikacioneve si GNOME Software të përcaktojnë se të dhënat e ruajtura prej tyre kërkojnë përditësim.
- Opcioni i ndërtimit http_backend është hequr, ndërsa për ngarkimin nëpërmjet HTTP/HTTPS është përdorur biblioteka libcurl në vend të libsoup2.
- Me default është aktivizuar përdorimi i sekuencave escape për të treguar përparimin e ekzekutimit të operacionit.
- Lejohet kalimi i të drejtave të aksesit të pajisjeve në mjediset sandbox të ngulitura që krijohen përmes portaleve Flatpak.
- Për alkalmazionet e ofruara në formën e imazheve OCI, është realizuar mekanizmi «extra-data», për shembull, që lejon organizimin e riprodhimit të videos h.265 në paketat Flatpak të Fedora Linux.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r kompresimin e varĂ«sive (OCI bundle) duke pĂ«rdorur algoritmin zstd, i cili kompreson tĂ« dhĂ«nat mĂ« efikasht. Me default, kompresimi vazhdon tĂ« pĂ«rdorĂ« gzip, i cili siguron maksimumin e pĂ«rputhshmĂ«risĂ«.
Flatpak thjeshton shpërndarjen e programeve që nuk janë në depozitë të zakonshme të distribucioneve, duke përgatitur një kontejner universal, duke e shpëtuar zhvilluesin nga nevoja për të krijuar versione të veçanta për çdo distribucion. Përdoruesve që u shqetëson siguria, Flatpak u jep mundësinë të ekzekutojnë aplikacione të dyshimta në një kontejner, duke ofruar qasje selektive vetëm në funksionet e nevojshme të rrjetit dhe skedarët e përdoruesit. Përdoruesve që janë të interesuar për të rejat, Flatpak u lejon të instalojnë versionet më të fundit teste dhe të stabilizuara të aplikacioneve pa pasur nevojë të bëjnë ndryshime në sistem. Për shembull, paketat Flatpak mbulohen për LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Telegram Desktop, Android Studio etj.
Për të reduktuar madhësinë, në paketë përfshihen vetëm varësi specifike për aplikacionin. Bibliotekat bazë të sistemeve dhe grafike (GTK, Qt, bibliotekat GNOME dhe KDE etj.) ofrohen si runtime të zakonshme. Dallimi kryesor midis Flatpak dhe Snap është se Snap përdor komponentët e mjedisit të sistemit kryesor dhe izolimin në bazë të filtrimit të thirrjeve sistemore, ndërsa Flatpak krijon një kontejner të veçantë nga sistemi dhe operon me grupe të mëdha runtime, duke ofruar si varësi jo paketa, por mjedise të zakonshme sistemore (p.sh., të gjitha bibliotekat e nevojshme për të funksionuar aplikacionet GNOME ose KDE).
PĂ«rveç mjedisit tĂ« zakonshĂ«m sistemor (runtime), i instaluar pĂ«rmes njĂ« depoje speciale, ofrohen varĂ«si shtesĂ« (bundle) qĂ« kĂ«rkohen pĂ«r funksionimin e aplikacionit. NĂ« total, âruntimeâ dhe âbundleâ formojnĂ« pĂ«rmbajtjen e kontejnerit, duke pasur parasysh qĂ« âruntimeâ instalohet veçmas dhe lidhet menjĂ«herĂ« me disa kontejnerĂ«, gjĂ« qĂ« lejon shmangien e kopjimit tĂ« skedarĂ«ve sistemorĂ« tĂ« zakonshĂ«m pĂ«r kontejnerĂ«t.
NĂ« njĂ« sistem mund tĂ« jenĂ« tĂ« instaluara disa âruntimeâ tĂ« ndryshme (GNOME, KDE) ose disa versione tĂ« njĂ« âruntimeâ (GNOME 50, GNOME 49). Kontejneri me aplikacione si varĂ«si pĂ«rdor lidhjen vetĂ«m me njĂ« âruntimeâ tĂ« caktuar, pa marrĂ« parasysh paketat e veçanta qĂ« formojnĂ« âruntimeâ e zgjedhur. TĂ« gjitha elementet e humbura paketohen direkt sĂ« bashku me aplikacionin. Kur krijohet kontejneri, pĂ«rmbajtja e âruntimeâ tĂ« montohet si seksion /usr, ndĂ«rsa âbundleâ montohet nĂ« katalogun /app.
PĂ«rmbajtja e âruntimeâ dhe kontejnerĂ«ve tĂ« aplikacioneve formohet duke pĂ«rdorur teknologjinĂ« OSTree, e cila mundĂ«son pĂ«rditĂ«simin atomar tĂ« imazhit nga njĂ« depo si Git, duke lejuar aplikimin e metodave tĂ« menaxhimit tĂ« versioneve nĂ« komponentĂ«t e shpĂ«rndarjes (p.sh., mund tĂ« kthehet shpejt sistemi nĂ« njĂ« gjendje tĂ« kaluar). Paketat RPM konvertohen nĂ« depo OSTree pĂ«rmes njĂ« shtrese rpm-ostree.
Instalimi selektiv dhe përditësimi i paketeve brenda mjedisit të punës nuk mbështetet - sistemi përditësohet jo në nivelin e komponentëve të veçantë, por si një e tërë, duke ndërruar atomarisht gjendjen e tij. Ofrohen mjete për aplikimin incremental të përditësimeve, duke eliminuar nevojën për zëvendësimin e plotë të imazhit me çdo përditësim.
Mjedisi i izoluar i formuar nuk varet nga distribucioni i përdorur dhe me konfigurimin e duhur të paketës nuk ka qasje në skedarët dhe proceset e përdoruesit ose të sistemit kryesor, as nuk mund të qaset direkt në pajisje, përveç daljes përmes DRI. Dalja grafike dhe organizimi i hyrjes realizohen përmes protokollit Wayland ose përmes kalimit të soketëve X11. Interaksioni me mjedisin e jashtëm ndodhet përmes sistemit të shkëmbimeve të mesazheve DBus dhe një API të veçantë të Portals.
Për izolim përdoret një shtresë Bubblewrap dhe teknologjitë tradicionale të virtualizimit të kontejnerëve për Linux, të bazuara në përdorimin e cgroups, hapësirave të emrave (namespaces), Seccomp dhe SELinux. Kur krijohet një paketë, izolimi mund të zhvillohet, nga e cila përfitojnë zhvilluesit e disa paketave për të marrë qasje të plotë në sistemin e skedarëve (FS) dhe në të gjitha pajisjet në sistem.
Burimi: opennet.ru
