PĂ€rast kahte ja poolt aastat arendust on avaldatud uus stabiilne Flatpak 1.16 tööriista haru, mis pakub sĂŒsteemi iseseisvate pakettide koostamiseks, mis ei ole seotud konkreetsete Linuxi distributsioonidega ja töötavad spetsiaalses konteineris, isolatsiooni kaudu rakenduse eraldamiseks ĂŒlejÀÀnud sĂŒsteemist. Flatpak-pakkude töötamine on toetatud Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux ja Ubuntu jaoks. Flatkpakiga seotud paketid on lisatud Fedora pakihalduri ja neid toetatakse GNOME ja KDE vaikimisi rakendustega.
Flatpak 1.16 haru peamised uuendused:
- On toimunud ĂŒleminek Meson ehitussĂŒsteemi kasutusele. Autotools tööriista lĂ€biviimise toetus on lĂ”petatud. Flatpaki koostamiseks on nĂŒĂŒd vaja sĂŒsteemis olla Python, vĂ€hemalt versioon 3.5.
- On rakendatud gssproxy soketile juurdepÀÀsu vĂ”imalus, mis vĂ”imaldab Kerberose kaudu autentimist rakendustes, mis kĂ€ivituvad liivakasti isolatsiooni reĆŸiimis.
- Waylandi soketi loomisel on kasutusele vĂ”etud security-context laiendus, mille kaudu koostaja server vĂ”ib tuvastada ja piirata rakendusi, mis töötavad liivakasti isolatsiooni reĆŸiimis. Lisatud on valik ââsocket=inherit-wayland-socketâ olemasoleva Waylandi soketi pĂ€rimiseks.
- PÀrast rakenduste installimist vÔi uuendamist tagab D-Bus seansibussi konfigureerimise automaatse taaskÀivitamise, et vÔtta kasutusele uued rakenduste eksporditud D-Bus teenused.
- Distributsioonidele on antud vĂ”imalus mÀÀrata Flatpaki pakettide allikaid kaustas â/usr/share/flatpak/remotes.dâ, lisaks â/etc/flatpak/remotes.dâ.
- On viidud lÀbi suuremate lÀhtekoodiga failide jagamise töö vÀikesteks mooduliteks.
- On lisatud valik ââdevice=inputâ sisendseadmete juurdepÀÀsuks lĂ€bi /dev/input.
- Rakenduste isolatsiooniks on kasutusele vĂ”etud uus bubblewrap 0.11 tööriistade haru. Distributsioonides, mis koostavad Flatpaki sĂŒsteemi bwrap executablest, peab olema vĂ€hemalt versioon bubblewrap 0.11. Rikkumise kaitsmine liivakasti keskkondadesse, kus luuakse pesasid (user namespace), on tugevdatud.
- TÀpsemate keelte seadistamine on lihtsustatud. Keelte mÀÀramine pÔhineb DBus teenuse AccountsService toimetataval teabel kasutajate kohta.
- Rakendustele, mis kasutavad sisemist sandbox-eraldust, nĂ€iteks WebKiti pĂ”hjal, on AT-SPI protokolli kasutamine ekraanilugejatega suhtlemiseks lubatud. Lisatud on valik âflatpak run âa11y-own-nameâ, et valida buss, mille kaudu pÀÀseb juurde ligipÀÀsetavuse vahenditele.
- KĂ€ivitades kĂ€su âflatpak run -vv â, kuvatakse kĂ”ik kehtivad sandbox-eraldusparameetrid.
- Lisatud on valik ââdevice=usbâ, samuti ââusbâ ja ââno-usbâ parameetrid rakenduse juurdepÀÀsu juhtimiseks USB-seadmetele.
- Lisatud on KCompletion raamistiku tugi, mida kasutatakse otsinguvÔtmete automaatseks tÀiendamiseks KDE-s.
- Lisatud on keskkonnamuutujad âFLATPAK_DATA_DIRâ ja âFLATPAK_DOWNLOAD_TMPDIRâ, et mÀÀrata ĂŒmber andmekataloogid ( /usr/share/flatpak ) ja allalaaditavad ajutised failid ( /var/tmp ).
- Lisa escape-jÀrjestuste vÀljund operatsioonide edenemise kuvamiseks terminaliemulaatorites.
Kohustuslik meeldetuletus: Flatpak lihtsustab programmide levitamist, mis ei kuulu jaotiste tavarepositsioonidesse, valmistades ette ĂŒhe universaalse konteineri, vabastades arendajad vajadusest koostada eraldi kogumid iga jaotuse jaoks. Turvalisuse nimel hoolivatele kasutajatele annab Flatpak vĂ”imaluse kĂ€itada kahtlase rakenduse konteineris, pakkudes valikuliselt juurdepÀÀsu ainult vajalikele vĂ”rgufunktsioonidele ja kasutaja failidele. Uute asjade huvi tundvatele kasutajatele vĂ”imaldab Flatpak installida kĂ”ige uuemaid katse- ja stabiilseid rakenduste vĂ€ljaandeid ilma sĂŒsteemi muutmata. NĂ€iteks koostatakse Flatpak-paketid LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Telegram Desktop, Android Studio jne jaoks.
Paki suuruse vĂ€hendamiseks sisaldab see ainult rakenduse spetsiifilisi sĂ”ltuvusi. BaassĂŒsteemi ja graafikakogud (GTK, Qt, GNOME ja KDE raamatukogud jne) tarnitakse plugina kujul standardsete runtime-keskkondadena. Flatpaki peamine erinevus Snapist seisneb selles, et Snap kasutab pĂ”hissĂŒsteemi keskkonna komponente ja sĂŒsteemikutsungite filtreerimise pĂ”hjal isoleerimist, samas kui Flatpak loob sĂŒsteemist eraldi konteineri ja töötleb suuremaid runtime-komplekte, pakkudes sĂ”ltuvustena mitte pakette, vaid standardseid sĂŒsteemi keskkondi (nt kĂ”ik raamatukogud, mis on vajalikud GNOME vĂ”i KDE programmide töötamiseks).
Lisaks standardsele sĂŒsteemi keskkonnale (runtime), mis installitakse spetsiaalse reposiitri kaudu, tarnitakse ka rakenduse tööks vajalikud tĂ€iendavad sĂ”ltuvused (bundle). Koos moodustavad "runtime" ja "bundle" konteineri sisu, kuid samas installitakse "runtime" eraldi ja seotakse korraga mitme konteineriga, mis vĂ”imaldab vĂ€ltida sĂŒsteemifailide dubleerimist, mis on ĂŒhised konteineritele.
Ăhes sĂŒsteemis vĂ”ib olla installitud mitu erinevat âruntimeâ (GNOME, KDE) vĂ”i mitu versiooni ĂŒhest âruntimeâ (GNOME 46, GNOME 47). Rakenduse konteiner sĂ”ltuvus kasutab sidet ainult kindla âruntimeâ'iga, mitte ei arvesta valitud âruntimeâ'i koosseisus olevaid eraldi pakette. KĂ”ik puuduvad elemendid pakitakse otse rakendusega. Konteinerit luues monteeritakse âruntimeâ sisu kui osa /usr-st ja âbundleâ monteeritakse katalooge /app.
«Runtime» ja rakenduste konteinerite sisu luuakse OSTree tehnoloogia abil, kus pilt vĂ€rskendatakse atomaarsetest Git-sarnastest hoidlatest, vĂ”imaldades rakendada versioonihaldusmeetodeid distributsi komponentide suhtes (nĂ€iteks saab kiiresti taastada sĂŒsteemi eelmisse olekusse). RPM-pakette kantakse OSTree hoidlasse lĂ€bi rpm-ostree liidese.
Valikuline pakettide installimine ja vĂ€rskendamine töökeskkonnas ei ole toetatud â sĂŒsteemi vĂ€rskendatakse mitte eraldi komponentide tasemel, vaid tĂ€ielikult, atomaarsete muudatustega. Pakutakse vahendeid uuenduste inkrementaalse rakendamise jaoks, vĂ€ltides vajadust iga uuenduse korral tĂ€ieliku pildi asendamise jĂ€rele.
Isoleeritud keskkond on tĂ€ielikult sĂ”ltumatu kasutatavast distributsioonist ning korralike paketi seadistuste korral ei ole sellele ligipÀÀsu kasutaja vĂ”i pĂ”hikorras oleva sĂŒsteemi failidele ja protsessidele, samuti ei saa see otse varustusele ligi, vĂ€lja arvatud vĂ€ljund DRI kaudu. Graafika vĂ€ljund ja sisendi organiseerimine on realiseeritud Waylandi protokolli vĂ”i X11 soketipassi kaudu. Suhtlemine vĂ€lismaailmaga toimub DBus suhtlemissĂŒsteemi ja spetsiaalse Portals API kaudu.
Isolatsiooni tagamiseks kasutatakse Bubblewrapi vahet, samuti traditsioonilisi Linuxi konteinerite virtualiseerimise tehnoloogiaid nagu cgroups, nimede ruume (namespaces), Seccomp ja SELinux. Helide vĂ€ljundiks kasutatakse PulseAudio vĂ”i PipeWire'd. Paketi loomise korral vĂ”ib isolatsiooni vĂ€lja lĂŒlitada, mida paljud populaarsed paketiarendajad kasutavad tĂ€ieliku juurdepÀÀsu saamiseks failisĂŒsteemile ja kĂ”ikidele seadmetele sĂŒsteemis.
NĂ€iteks GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ja VLC pakette tarnitakse piiratud isolatsioonireĆŸiimis, mis jĂ€tab tĂ€ieliku ligipÀÀsu kodukataloogile. Kui pakettides, mis pÀÀsevad kodukataloogile, toimub kompromiteerimine, piisab rĂŒndajast, et muuta fail ~/.bashrc, hoolimata paketi kirjel olevast sildist âsandboxedâ. Eraldi kĂŒsimus on pakettide muudatuste jĂ€lgimine ja usaldus pakettide koostajate suhtes, kes tihti ei ole seotud peamise projekti vĂ”i distributsioonidega.
Allikas: opennet.ru
