Pas dy vjet e gjysmë zhvillimi, është publikuar dega e re stabile e mjetit Flatpak 1.16, i cili ofron një sistem për ndërtimin e pakove të vetëqëndrueshme, të pa lidhura me shpërndarje të caktuara Linux dhe që ekzekutohen në një konteiner të veçantë, që izolon aplikacionin nga pjesa tjetër e sistemit. Mbështetje për ekzekutimin e pakove Flatpak është siguruar për Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux dhe Ubuntu. Pakot Flatpak janë përfshirë në depozitat e Fedora dhe mbështeten në programet menaxhuese të aplikacioneve GNOME dhe KDE.
Risi kryesore në degën Flatpak 1.16:
- ĂshtĂ« realizuar kalimi nĂ« pĂ«rdorimin e sistemit tĂ« ndĂ«rtimit Meson. MbĂ«shtetja pĂ«r ndĂ«rtim me mjetin Autotools Ă«shtĂ« ndĂ«rprerĂ«. PĂ«r tĂ« ndĂ«rtuar Flatpak tani kĂ«rkohet tĂ« ketĂ« nĂ« sistem Python, tĂ« paktĂ«n versionin 3.5.
- ĂshtĂ« realizuar ndarja e soketit gssproxy, e cila lejon pĂ«rdorimin e autentifikimit pĂ«rmes Kerberos nĂ« aplikacione, tĂ« cilat ekzekutohen nĂ« modin e izolimit sandbox.
- Kur krijohet njĂ« soket pĂ«r Wayland Ă«shtĂ« pĂ«rdorur shtrirja security-context, pĂ«rmes sĂ« cilĂ«s kompozita server mund tĂ« identifikojĂ« dhe tĂ« kufizojĂ« aplikacionet e ekzekutuara nĂ« modin e izolimit sandbox. ĂshtĂ« shtuar opsioni "âsocket=inherit-wayland-socket" pĂ«r trashĂ«giminĂ« e soketit ekzistues pĂ«r Wayland.
- Pas instalimit ose përditësimit të aplikacioneve, është siguruar rinovimi automatik i konfiguracionit të shiritit sesion D-Bus për të kapur shërbimet e reja të eksportuara nga aplikacionet e D-Bus.
- Shpërndarjet kanë marrë mundësinë të përcaktojnë depozitat me pakot Flatpak, duke përdorur katalogun "/usr/share/flatpak/remotes.d", përveç "/etc/flatpak/remotes.d".
- Janë kryer punë për ndarjen e skedarëve të mëdhenj me kod burimor në module të vogla.
- ĂshtĂ« shtuar opsioni "âdevice=input" pĂ«r qasje nĂ« pajisjet e hyrjes pĂ«rmes /dev/input.
- PĂ«r izolimin e aplikacioneve Ă«shtĂ« pĂ«rdorur dega e re e mjetit bubblewrap 0.11. NĂ« shpĂ«rndarjet qĂ« ndajnĂ« Flatpak duke pĂ«rdorur skedarin ekzekutiv sistemor bwrap, Ă«shtĂ« e nevojshme qĂ« tĂ« kete tĂ« paktĂ«n versionin bubblewrap 0.11. ĂshtĂ« pĂ«rforcuar mbrojtja kundĂ«r krijimit tĂ« hapĂ«sirave tĂ« brendshme tĂ« identifikuesve tĂ« pĂ«rdoruesit nĂ« ambientet sandbox.
- ĂshtĂ« lehtĂ«suar konfigurimi i gjuhĂ«ve shtesĂ«. ĂshtĂ« siguruar pĂ«rcaktimi i gjuhĂ«ve bazuar nĂ« informacionin e pĂ«rdoruesve, i dhĂ«nĂ« nga shĂ«rbimi DBus-SERVICE AccountsService.
- Aplikacionet qĂ« pĂ«rdorin izolimin e sandboxes tĂ« thelluar, si ato qĂ« bazohen nĂ« motorin WebKit, lejohet tĂ« pĂ«rdorin protokollin AT-SPI pĂ«r tĂ« ndĂ«rvepruar me lexuesit e ekranit. U shtua mundĂ«sia "flatpak run âa11y-own-name" pĂ«r tĂ« zgjedhur autobusin pĂ«rmes tĂ« cilit bĂ«het akses nĂ« mjetet pĂ«r personat me aftĂ«si tĂ« kufizuara.
- Kur ekzekutohet komanda "flatpak run -vv ", shfaqen të gjitha parametrat e reporteve të sandboxes të aplikueshëm.
- U shtua opsioni "âdevice=usb", si dhe parametrat "âusb" dhe "âno-usb" pĂ«r tĂ« menaxhuar aksesin e aplikacionit nĂ« pajisjet USB.
- U shtua mbështetje për framework-un KCompletion, i cili përdoret për aut kompletimin e fjalëve kyçe në KDE.
- U shtuan variablat e mjedisit "FLATPAK_DATA_DIR" dhe "FLATPAK_DOWNLOAD_TMPDIR" për të rivendosur katalogët e të dhënave (\/usr\/share\/flatpak) dhe skedarët e përkohshëm të shkarkuar (\/var\/tmp).
- U shtua output-i i sekencave escape për të treguar progresin e operacioneve në emulatorët e terminaleve.
KujtojmĂ« se Flatpak lehtĂ«son shpĂ«rndarjen e programeve qĂ« nuk janĂ« pjesĂ« e depove standarde tĂ« distribucioneve, duke pĂ«rgatitur njĂ« kontenier universale, duke i liruar zhvilluesit nga nevoja pĂ«r tĂ« krijuar ndarje tĂ« veçanta pĂ«r çdo distribucion. PĂ«rdoruesit qĂ« shqetĂ«sohen pĂ«r sigurinĂ«, Flatpak u ofron mundĂ«sinĂ« pĂ«r tĂ« ekzekutuar njĂ« aplikacion me dyshime nĂ« njĂ« kontenier, duke ofruar akses selektiv vetĂ«m nĂ« funksionet rr ŃĐ”Ń dhe skedarĂ«t e pĂ«rdoruesit. PĂ«rdoruesit qĂ« janĂ« tĂ« interesuar pĂ«r risitĂ«, Flatpak u lejon tĂ« instalojnĂ« versionet mĂ« tĂ« reja tĂ« aplikacioneve testuese dhe stabile pa pasur nevojĂ« pĂ«r tĂ« bĂ«rĂ« ndryshime nĂ« sistem. PĂ«r shembull, pakot Flatpak janĂ« krijuar 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Ă« instaluar disa âruntimeâ tĂ« ndryshme (GNOME, KDE) ose disa versione tĂ« njĂ« âruntimeâ (GNOME 46, GNOME 47). Konteineri me aplikacion si varĂ«si pĂ«rdor lidhjen vetĂ«m me njĂ« âruntimeâ tĂ« caktuar, pa marrĂ« parasysh paketat e veçanta qĂ« formojnĂ« âruntimeâ e zgjedhura. TĂ« gjitha elementet e munguar paketohen drejtpĂ«rdrejt me aplikacionin. Kur krijohet njĂ« kontejner, pĂ«rmbajtja e âruntimeâ montoset si pjesĂ« e /usr, ndĂ«rsa âbundleâ montoset nĂ« direktoriumin /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 është plotësisht i pavarur nga distribucioni i përdorur dhe, me konfigurimin e duhur të paketës, nuk ka akses në skedarët dhe proceset e përdoruesit ose të sistemit kryesor, si dhe nuk mund të qaset drejtpërdrejt në pajisje, përveç daljes përmes DRI. Dalja e grafikës dhe organizimi i hyrjes janë implementuar përmes protokollit Wayland ose përmes kalimit të soketëve X11. Bashkëpunimi me mjedisin e jashtëm është ndërtuar nëpërmjet sistemit të shkëmbimit të mesazheve DBus dhe një API të posaçëm Portals.
Për izolimin përdoret një shtresë Bubblewrap dhe teknologji tradicionale për virtualizim me kontejnerë në Linux, të bazuara në përdorimin e cgroups, hapësirave të emrave (namespaces), Seccomp dhe SELinux. Për daljen e zërit përdoret PulseAudio ose PipeWire. Gjatë krijimit të paketës, izolimi mund të çaktivizohet, gjë që përdoret nga zhvilluesit e shumë paketimeve popullore për të fituar akses të plotë në FS dhe në të gjitha pajisjet në sistem.
Për shembull, me regjimin e izolimit të kufizuar, i cili lë të gjithë aksesin në katalogun e shtëpisë, ofrohen paketa si GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity dhe VLC. Në rastin e kompromentimit të paketimeve me akses në katalogun e shtëpisë, pavarësisht nga prania e etiketës «sandboxed» në përshkrimin e paketës, për sulmuesin për të ekzekutuar kodin e tij mjafton të modifikojë skedarin ~/.bashrc. Një çështje e veçantë është kontrolli mbi ndryshimet në paketa dhe besimi tek ndërtuesit e paketimeve, të cilët shpesh nuk lidhen me projektin kryesor ose me distribucionet.
Burimi: opennet.ru
