Kaks ja pool aastat kestnud arendustööd on tulemuseks Flatpak 1.16 uue stabiilse versiooni vĂ€ljaandmine, mis pakub sĂŒsteemi iseseisvate pakettide koostamiseks, mis ei ole seotud konkreetsete Linuxi distributsioonidega ja mida kĂ€itatakse spetsiaalses konteineris, mis eraldab rakenduse ĂŒlejÀÀnud sĂŒsteemist. Flatpak paketid saavad toetust Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux ja Ubuntu jaoks. Flatkpak paketid on lisatud Fedora reposse ja neid toetavad GNOME ja KDE vaikimisi rakenduste haldusprogrammid.
Flatpak 1.16 pÔhifunktsioonid:
- On toimunud ĂŒleminek Meson koostamissĂŒsteemi kasutamisele. Autotools tööriistadega koostamise tugi on lĂ”petatud. Flatkpak koostamiseks on nĂŒĂŒd vajalik Python, vĂ€hemalt versioon 3.5.
- On rakendatud gssproxy sokli jagamine, mis vĂ”imaldab Kerberose kaudu autentimist rakendustes, mis kĂ€ivituvad liivakasti isolatsioonireĆŸiimis.
- Waylandi sokli loomisel on kasutatud security-context laiendust, mille kaudu server suudab tuvastada ja piirata rakendusi, mis töötavad sandboxes-isolatsioonis. Lisatud on vĂ”imalus «âsocket=inherit-wayland-socket», et pĂ€rida olemasolevat soketit Waylandi jaoks.
- Rakenduste installimise vÔi uuendamise jÀrel tagatakse automaatne D-Busi seanssibusu konfiguratsiooni taaskÀivitamine, et haarata uusi D-Busi teenuseid, mida rakendused ekspordivad.
- Jaotustarkvaradele on antud vÔimalus mÀÀrata Flatpaki pakettide hoidlaid, kasutades katalooge «/usr/share/flatpak/remotes.d», lisaks «/etc/flatpak/remotes.d».
- Tööd on tehtud suuremate lÀhtekoodifailide jagamiseks vÀikesteks mooduliteks.
- Lisatud on valik «âdevice=input», et saada juurdepÀÀs sisendseadmetele lĂ€bi /dev/input.
- Rakenduste isoleerimiseks on kasutusele vĂ”etud uus bubblewrapi tööriistakomplekti versioon 0.11. Jaotustarkvarades, mis koguvad Flatpaki, kasutades sĂŒsteemset bwrapi executables, peab olema vĂ€hemalt bubblewrapi versioon 0.11. Parandatud on kaitset kasutaja identifikaatorite (user namespace) pesade loomise vastu sandbox-ide keskkondades.
- TÀpsem keeletoetuse seadistamine. Keeled mÀÀratakse kasutaja teabe pÔhjal, mille annab DBus-i teenus AccountsService.
- Rakendustele, mis kasutavad sisemist sandbox-isolatsiooni, nĂ€iteks WebKit'i mootorit, on lubatud AT-SPI protokolli kasutamine ekraanilugejatega suhtlemiseks. Loodud on valik âflatpak run âa11y-own-nameâ, et valida bussi, mille kaudu pÀÀseb juurde ligipÀÀsusĂŒsteemidele.
- KĂ€skluse âflatpak run -vv â tĂ€itmisel nĂ€idatakse kĂ”iki rakendatavaid sandbox-isolatsiooni seadeid.
- Lisatud valik ââdevice=usbâ ning parameetrid ââusbâ ja ââno-usbâ rakenduse ligipÀÀsu haldamiseks USB-seadmetele.
- Toetatud on KCompletion raamistik, mida kasutatakse otsinguvÔtmete automaatselt tÀiendamiseks KDE-s.
- Lisatud keskkonnamuutujad âFLATPAK_DATA_DIRâ ja âFLATPAK_DOWNLOAD_TMPDIRâ andmete kataloogide (/usr/share/flatpak) ja ajutiste allalaadimisfailide (/var/tmp) ĂŒlekirjutamiseks.
- Escape-jÀrjestuste vÀljund on lisatud, et kuvada operatsioonide edenemist terminali emulaatorites.
Meeldetuletuseks olgu öeldud, et Flatpak lihtsustab programmide levitamist, mis ei kuulu distributsioonide vaikerepositooriumitesse, ĂŒhe universaalse konteineri ettevalmistamise kaudu, vabastades arendajad vajadusest luua eraldi kogusid iga distributsiooni jaoks. Kasutajatele, kes hoolivad turvalisusest, pakub Flatpak vĂ”imalust kĂ€ivitada kahtlaseid rakendusi konteineris, andes neile valikulise juurdepÀÀsu vaid vajalikule vĂ”rgufunktsioonile ja kasutaja failidele. Neile, kes on huvitatud uuendustest, vĂ”imaldab Flatpak installida kĂ”ige vĂ€rskemaid beetaversioone ja stabiilseid rakendusi ilma sĂŒsteemis muudatusi tegemata. NĂ€iteks kogutakse Flatpak pakette LibreOffice'i, GIMP-i, Inkscape'i, Kdenlive'i, Steami, 0 A.D., Visual Studio Code'i, VLC, Slacki, Telegram Desktopi, Android Studio jne jaoks.
Rakenduse sĂ”ltuvused lisatakse paketti ainult siis, kui need on konkreetse suuruse vĂ€hendamise jaoks vajalikud. PĂ”hisĂŒsteemi ja graafikakogud (GTK, Qt, GNOME ja KDE raamatukogud jne) tarnitakse komponentidena tĂŒĂŒpiliste runtime-keskkondade kujul. Peamine erinevus Flatpaki ja Snap-i vahel on see, et Snap kasutab pĂ”hite sĂŒsteemi keskkonna komponente ja isoleerimist, mis pĂ”hineb sĂŒsteemikĂ”nede filtreerimisel, samas kui Flatpak loob sĂŒsteemist eraldi konteineri ja töötleb suuri runtime-komplekte, pakkudes sĂ”ltuvustena mitte pakette, vaid tĂŒĂŒpilisi sĂŒsteemi keskkondi (nĂ€iteks kĂ”iki teeke, mis on vajalikud GNOME vĂ”i KDE rakenduste tööks).
Lisaks tĂŒĂŒpilisele sĂŒsteemi keskkonnale (runtime), mis installitakse spetsiaalsest hoidlast, tarnitakse ka tĂ€iendavaid sĂ”ltuvusi (bundle), mis on rakenduse tööks vajalikud. Kokku luuakse «runtime» ja «bundle» konteineri sisu, kusjuures «runtime» installitakse eraldi ja seotakse kohe mitme konteineriga, mis vĂ”imaldab vĂ€ltida ĂŒhiste sĂŒsteemifailide dubleerimist konteinerite vahel.
Ăhes sĂŒsteemis vĂ”ib olla installitud mitu erinevat "runtime" (GNOME, KDE) vĂ”i mitu versiooni ĂŒhest "runtime" (GNOME 46, GNOME 47). Rakenduse konteiner, millel on sĂ”ltuvus, kasutab sidet ainult teatud "runtime"'iga, arvestamata valitud "runtime"'i moodustavaid eraldi pakette. KĂ”ik puuduvad elemendid pakendatakse otse koos rakendusega. Konteineri loomisel monteeritakse "runtime" sisu katalooge nagu /usr, samas kui "bundle" montatsioon toimub kaustas /app.
âRuntime'iâ ja rakenduskonteinerite sisu moodustatakse OSTree tehnoloogia abil, kus pilt uuendatakse atomaarseten Giti-sarnaste hoidlate kaudu, vĂ”imaldades rakendada versioonikontrolli meetodeid distributsiooni komponentidele (nt saan kiiresti tagasi kerida sĂŒsteemi varasemasse olekusse). RPM-paketid tĂ”lgitakse OSTree hoidlast lĂ€bi rpm-ostree vahekihiga.
Pakettide valikuline install ja vĂ€rskendamine töökeskkonnas ei ole toetatud â sĂŒsteem uuendatakse mitte eraldi komponente, vaid tervikuna, muutes oma seisundi aatomaarsetena. Pakendatakse tööriistad inkrementaalseks vĂ€rskendamiseks, vabastades vajadusest igasuguste piltide tĂ€ieliku asendamise kohta iga vĂ€rskenduse puhul.
Moodustatud isoleeritud keskkond on tĂ€ielikult sĂ”ltumatu kasutatavast distributiivist ning korralike paketti seadistuste korral ei pÀÀse ta ligi kasutaja vĂ”i pĂ”hisisĂŒsteemi failidele ja protsessidele ning ei saa ka otse seadmetele pöörduda, vĂ€lja arvatud DRI kaudu vĂ€ljundi osas. Graafika vĂ€ljund ja sisendi korraldamine on teostatud Waylandi protokolli abil vĂ”i X11 sokli edastamise kaudu. Suhtlemine vĂ€lismaailmaga toimub DBusi sĂ”numite vahetussĂŒsteemi ja spetsiaalse Portali API kaudu.
Isolatsiooniks kasutatakse Bubblewrap'i vahekihti ja traditsioonilisi Linuxi konteinerite virtualiseerimise tehnoloogiaid, mis pĂ”hinevad cgroups'i, nimede ruumide (namespaces), Seccomp'i ja SELinuxi kasutamisel. Helide vĂ€ljastamiseks kasutatakse PulseAudio't vĂ”i PipeWire'i. Paketi loomisel vĂ”ib isolatsiooni vĂ€lja lĂŒlitada, millega kasutavad Ă€ra paljude populaarsete pakettide arendajad, et saada tĂ€ielik juurdepÀÀs failisĂŒsteemile ja kĂ”igile seadmetele sĂŒsteemis.
NĂ€iteks on piiratud isolatsioonireĆŸiimiga, mis vĂ”imaldab tĂ€ielikku juurdepÀÀsu kodukataloogile, varustatud paketid GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ja VLC. Kui pakette, millel on juurdepÀÀs kodukataloogile, kompromiteeritakse, siis piisab rĂŒndajal oma koodi kĂ€ivitamiseks faili ~/.bashrc muutmisest, hoolimata sellest, et paketikirjelduses on mĂ€rge âsandboxedâ. Eraldi kĂŒsimus on pakettide muutmise kontroll ja usaldus pakettide koostajate suhtes, kes sageli ei ole seotud pĂ”hiprojekti vĂ”i -distributsioonidega.
Allikas: opennet.ru
