Është publikuar një degë e re e qëndrueshme e paketës së veglave Flatpak 1.14, e cila ofron një sistem për ndërtimin e paketave të pavarura që nuk janë të lidhura me shpërndarje specifike Linux dhe funksionojnë në një enë speciale që izolon aplikacionin nga pjesa tjetër e sistemit. Mbështetja për ekzekutimin e paketave Flatpak ofrohet për Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux dhe Ubuntu. Paketat Flatpak përfshihen në depon e Fedora dhe mbështeten nga menaxheri i aplikacionit vendas GNOME.
Risitë kryesore në degën Flatpak 1.14:
- Është e mundur të krijohet një direktori për skedarët në gjendje (.local/state) dhe të vendoset ndryshorja e mjedisit XDG_STATE_HOME që tregon këtë direktori.
- U shtuan kontrolle të kushtëzuara të formës "have-kernel-module-name" për të përcaktuar praninë e moduleve të kernelit (një analog universal i kontrollit të propozuar më parë have-intel-gpu, në vend të të cilit shprehja "have-kernel-module-i915 ” tani mund të përdoret).
- Komanda “flatpak document-unexport —doc-id=…” është zbatuar.
- Ofrohet eksporti i meta të dhënave të Appstream për përdorim në mjedisin kryesor.
- U shtuan rregullat e kompletimit të komandës flatpak për guaskën e Peshkut
- Qasja në rrjet në shërbimet X11 dhe PulseAudio lejohet (nëse janë shtuar cilësimet e duhura).
- Dega kryesore në depon e Git është riemërtuar nga "master" në "kryesore", pasi fjala "mjeshtër" kohët e fundit është konsideruar politikisht e pasaktë.
- Skriptet e nisjes tani rishkruhen nëse aplikacioni riemërtohet.
- U shtuan opsionet "--include-sdk" dhe "--include-debug" në komandën e instalimit për të instaluar skedarët SDK dhe debuginfo.
- Mbështetje e shtuar për parametrin "DeploySideloadCollectionID" te skedarët flatpakref dhe flatpakrepo Kur të vendoset, ID-ja e koleksionit do të vendoset kur shtohet një depo në distancë dhe jo pas ngarkimit të meta të dhënave.
- Lejohet krijimi i mjediseve të integruara të sandboxit për mbajtësit në sesione me emra të veçantë MPRIS (Specifikimi i ndërfaqes në distancë të luajtësit të medias).
- Shërbimet e linjës së komandës tani ofrojnë informacion në lidhje me përdorimin e shtesave të vjetëruara të kohës së funksionimit.
- Komanda e çinstalimit zbaton një kërkesë konfirmimi përpara se të heqë shtesat e kohës së funksionimit ose të ekzekutimit që janë ende në përdorim.
- U shtua mbështetje për opsionin "--socket=gpg-agent" për komandat si "flatpak run".
- Një dobësi është rregulluar në libostree që mund të lejojë një përdorues të fshijë skedarë arbitrar në sistem përmes manipulimit të trajtuesit flatpak-system-helper (duke dërguar një kërkesë fshirjeje me një emër dege të formatuar posaçërisht). Problemi shfaqet vetëm në versionet më të vjetra të Flatpak dhe libostree të lëshuara përpara vitit 2018 (< 0.10.2) dhe nuk ndikon në versionet aktuale.
Ju kujtojmë se Flatpak lejon zhvilluesit e aplikacioneve të thjeshtojnë shpërndarjen e programeve të tyre që nuk përfshihen në depot standarde të shpërndarjes duke përgatitur një kontejner universal pa krijuar asamble të veçanta për secilën shpërndarje. Për përdoruesit e ndërgjegjshëm për sigurinë, Flatpak ju lejon të ekzekutoni një aplikacion të dyshimtë në një kontejner, duke siguruar akses vetëm në funksionet e rrjetit dhe skedarët e përdoruesit të lidhur me aplikacionin. Për përdoruesit e interesuar për produkte të reja, Flatpak ju lejon të instaloni testet më të fundit dhe lëshimet e qëndrueshme të aplikacioneve pa pasur nevojë të bëni ndryshime në sistem. Për shembull, paketat Flatpak janë ndërtuar për LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, etj.
Për të reduktuar madhësinë e paketës, ai përfshin vetëm varësi specifike të aplikacionit dhe bibliotekat bazë të sistemit dhe grafikë (GTK, Qt, GNOME dhe bibliotekat KDE, etj.) janë projektuar si mjedise standarde të kohës së funksionimit plug-in. Dallimi kryesor midis Flatpak dhe Snap është se Snap përdor përbërësit e mjedisit kryesor të sistemit dhe izolimin e bazuar në thirrjet e sistemit të filtrimit, ndërsa Flatpak krijon një kontejner të veçantë nga sistemi dhe funksionon me grupe të mëdha kohëzgjatjeje, duke ofruar jo paketa si varësi, por standarde. mjediset e sistemit (për shembull, të gjitha bibliotekat e nevojshme për funksionimin e programeve GNOME ose KDE).
Përveç mjedisit standard të sistemit (koha e funksionimit), të instaluar përmes një depoje të veçantë, ofrohen varësi shtesë (paketë) të nevojshme për funksionimin e aplikacionit. Në total, koha e funksionimit dhe paketa formojnë mbushjen e kontejnerit, pavarësisht nga fakti se koha e funksionimit instalohet veçmas dhe lidhet me disa kontejnerë menjëherë, gjë që ju lejon të shmangni dublikimin e skedarëve të sistemit të zakonshëm për kontejnerët. Një sistem mund të ketë të instaluar disa periudha të ndryshme ekzekutimi (GNOME, KDE) ose disa versione të së njëjtës kohë ekzekutimi (GNOME 3.40, GNOME 3.42). Një kontejner me një aplikacion si varësi përdor një lidhje vetëm për një kohë të caktuar ekzekutimi, pa marrë parasysh paketat individuale që përbëjnë kohën e ekzekutimit. Të gjithë elementët që mungojnë paketohen drejtpërdrejt me aplikacionin. Kur formohet një kontejner, përmbajtja e kohës së ekzekutimit montohet si ndarja /usr dhe pakoja montohet në drejtorinë /app.
Koha e ekzekutimit dhe kontejnerët e aplikacionit janë ndërtuar duke përdorur teknologjinë OSTree, në të cilën imazhi përditësohet në mënyrë atomike nga një depo e ngjashme me Git, e cila lejon që metodat e kontrollit të versionit të aplikohen në komponentët e shpërndarjes (për shembull, ju mund ta ktheni shpejt sistemin në një gjendjen e mëparshme). Paketat RPM përkthehen në depon e OSTree duke përdorur një shtresë të veçantë rpm-ostree. Instalimi dhe përditësimi i veçantë i paketave brenda mjedisit të punës nuk mbështetet; sistemi azhurnohet jo në nivelin e përbërësve individualë, por në tërësi, duke ndryshuar atomikisht gjendjen e tij. Ofron mjete për të aplikuar përditësimet gradualisht, duke eliminuar nevojën për të zëvendësuar plotësisht imazhin me çdo përditësim.
Mjedisi i izoluar i gjeneruar është plotësisht i pavarur nga shpërndarja e përdorur dhe, me cilësimet e duhura të paketës, nuk ka akses në skedarët dhe proceset e përdoruesit ose të sistemit kryesor, nuk mund të aksesojë drejtpërdrejt pajisjen, me përjashtim të daljes nëpërmjet DRI, dhe thirrjet në nënsistemin e rrjetit. Dalja grafike dhe organizimi i hyrjes zbatohen duke përdorur protokollin Wayland ose nëpërmjet përcjelljes së prizës X11. Ndërveprimi me mjedisin e jashtëm bazohet në sistemin e mesazheve DBus dhe një API speciale të Portaleve.
Për izolim, përdoret shtresa Bubblewrap dhe teknologjitë tradicionale të virtualizimit të kontejnerëve Linux, bazuar në përdorimin e cgroups, hapësirave të emrave, Seccomp dhe SELinux. PulseAudio përdoret për të nxjerrë zërin. Në këtë rast, izolimi mund të çaktivizohet, i cili përdoret nga zhvilluesit e shumë paketave të njohura për të fituar akses të plotë në sistemin e skedarëve dhe të gjitha pajisjet në sistem. Për shembull, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity dhe VLC vijnë me një mënyrë të kufizuar izolimi që lë akses të plotë në direktorinë e shtëpisë. Nëse paketat me akses në direktorinë kryesore janë komprometuar, pavarësisht nga prania e etiketës "sandboxed" në përshkrimin e paketës, sulmuesi duhet vetëm të ndryshojë skedarin ~/.bashrc për të ekzekutuar kodin e tij. Një çështje më vete është kontrolli i ndryshimeve në paketa dhe besimi në ndërtuesit e paketave, të cilët shpesh nuk janë të lidhur me projektin ose shpërndarjet kryesore.
Burimi: opennet.ru
