uus stabiilne tööriistakomplekti haru , 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-pakettide tugi on tagatud Arch Linuxile, , Debianile, Fedora'le, Gentoo'le, Mageia'le, Linux Mintile ja Ubuntu'le. Flatpak-paketid on kaasatud Fedora reposse ja toetatud GNOME'i rakenduste haldamise programmi kaudu.
Peamised Flatpak 1.6 haru
- V Lisatud meetod CreateUpdateMonitor, mis võimaldab rakendustel jälgida uuenduste ilmumist ja küsida, kas soovitakse ilmunud uuendust installida.
Rakenduse iseseisva uuendamise lubade keelamiseks saab kasutada käsku „flatpak permission-set flatpak updates $APPID no“ (kui „no“ asemele tuua „ask“, siis küsitakse iga kord uuendamise kinnitust); - Protsessihaldurite loomise hõlbustamiseks on välja pakutud teek
libportal, mis võimaldab sündmuste töötlemist ilma API Portali otsekasutamiseta ja signaalide tõlgendamiseta, mis tulevad läbi D-Bus.
Libportal pakub enamiku jaoks lihtsaid asünkroonselt töötavaid kihtide mänedžere.«; - Lisatud uus lubamine „—socket=cups“, et anda otseühendus CUPS trükkimiserveriga;
- Protokoll ja API autentimise töötlemiseks on muudetud. Lisa autentija OCI (Open Container Initiative) jaoks. Tugi autentsusprotsesside automaatseks installimiseks välisest flatpak-repositooriumist. FlatpakTransaction'ile on lisatud tagasikutsumise töötleja, et kasutada logi ja parooli autentimist sarnaselt HTTP basic autentimise meetodiga;
- Lisatud tugi kaitstud rakendustele ja süsteemidele, mis nõuavad laadimisel autentimist;
- Isolatsiooni tagamiseks kasutatav kiht bubblewrap on uuendatud versioonini ;
- Lisatud valikuline vanemate kontrolli tugi teegi kaudu , mis võimaldab piirata juurdepääsu teatud tüüpi sisule;
- Lisandmoodulid installitakse nüüd enne rakendust, mis võimaldab saabumist saada kohe pärast installimist;
- Ajutiste failidega liiklemist on ümber töötatud, et parandada toimimist piiratud kettaruumi korral;
- Käsku „“ saab nüüd teostada ilma sudo't kasutamata;
- Portaalidesse on lisatud võimalus käivitada tütarrakendusi (sub-sandbox) isoleeritud keskkondades;
- Lisatud uued käsud „flatpak permission-set“ ja „permission-remove“ lubade haldamiseks;
- Lisatud valik „flatpak install —or-update“, mis sooritab uuenduse, kui rakendus on juba installitud;
- Lisatud käsk „flatpak mask“ versiooni kinnitamiseks ja uuenduste installeerimise keelamiseks;
- OCI (Open Container Initiative) formaadis piltide jaoks on lisatud siltide sidumise, muudatuste ajaloo genereerimise ja Docker'i mime-tüüpide lisamise tugi, peale OCI mime-tüübide;
- Seadetes on sisestatud klahv default-languages, et määrata kasutatavate keelte nimekiri, lisaks süsteemi nimekirjale.
Tuletame meelde, et Flatpaki arendajatele antakse võimalus lihtsustada oma programmide levitamist, mis ei kuulu jaotuste ametlikesse hoidlatesse, tänu ühe universaalse konteineri loomine ilma erinevaid koostisosade siseversioone tekitamata. Kasutajad, kes hoolivad turvalisusest, saavad Flatpak'i abil kahtlast rakendust käivitada konteineris, andes juurdepääsu ainult rakendusega seotud kasutaja võrgu- ja failifunktsioonidele. Kasutajad, kes on huvitatud uuendustest, saavad installida kõige värskemad katse- ja stabiilsed rakenduste väljalasked ilma süsteemi muutmiseta. Näiteks praegu on Flatpak paketid juba LibreOffice'i, Firefoxi, GIMP-i, Inkscape'i, Kdenlive'i, Steami, 0 A.D., Visual Studio Code'i, VLC, Slacki, Skype'i, Telegram Desktopi, Android Studio jne jaoks.
Paketi suuruse vähendamiseks sisaldab see ainult rakenduse spetsiifilisi sõltuvusi, samas kui põhisk süsteemi ja graafikakogude teegid (Gtk+, Qt, GNOME ja KDE teegid jms) on esitatud kui ühendatud tüüpilised runtime-ümbrikud. Flatpaki peamine erinevus Snapist seisneb selles, et Snap kasutab põhisk keskkonna komponente ning süsteemikõnede filtreerimise kaudu isolatsiooni, samas kui Flatpak loob süsteemist eraldi konteineri ja opereerib suurte runtime-komplektidega, pakkudes sõltuvustena mitte pakette, vaid tüüpilisi süsteemi keskkondi (näiteks kõik teegid, mis on vajalikud GNOME või KDE programmide tööks).
Lisaks tüüpilisele süsteemi keskkonnale (runtime), mis installitakse spetsiaalselt , tarnitud sõltumatud sõltuvused (bundle), mis on vajalik rakenduse töötamiseks. Kokku moodustavad runtime ja bundle konteineri sisu, samas kui runtime paigaldatakse eraldi ja sidub kohe mitme konteineriga, mis võimaldab vältida ühiste süsteemifailide dubleeritud paigaldamist konteinerite vahel. Ühes süsteemis võib olla paigaldatud mitu erinevat runtime'i (GNOME, KDE) või mitu versiooni ühest ja samast runtime'ist (GNOME 3.26, GNOME 3.28). Rakenduse konteiner sõltuvusena kasutab sidet ainult teatud runtime'iga, arvestamata eraldi pakette, millest runtime koosneb. Kõik puuduvad elemendid pakendatakse otse koos rakendusega. Konteineri loomisel mountitakse runtime'i sisu katalooge nagu /usr, samas kui bundle mountitakse katalooge /app.
Rakenduste konteinerite ja runtime koostisosad moodustatakse tehnoloogia abil , mille korral pilt uuendatakse atomaarseks Git-laadse salvestusse, võimaldades rakendada versiooni kontrolli meetodeid distributsiooni komponentide üle (näiteks saab kiiresti taastada süsteemi eelnevasse olekusse). RPM paketid muundatakse OSTree repositooriumisse spetsiaalse kihi kaudu, . Üksikud paketid ei saa olla eraldi paigaldatud ja värskendatud töökeskkonnas, süsteemi uuendamine toimub mitte eraldi komponentide tasandil, vaid tervikuna, muudab atomaariselt oma seisundit. Pakutakse vahendeid, mis võimaldavad inkrementaalset uuenduste rakendamist, vabastades vajadusest iga uuenduse korral kogu pilti asendada.
Moodustatud isoleeritud keskkond on täielikult sõltumatu kasutatavast distributiivist, ning sobivate paketi seadistuste korral ei ole see omanikuks kasutaja failidele ja protsessidele ega pääse otseselt varustusele, välja arvatud vajadusel DRI kaudu väljundile ja võrgu alamsüsteemile. Graafika väljund ja sisendi korraldamine. Waylandi protokolli või X11 sokli edastamise kaudu. Suhtlemine väliskeskkonnaga põhineb DBus sõnumivahetussüsteemil ja spetsiaalsel API Portals. Isolatsiooniks kiht ja traditsioonilised Linuxi konteinerite virtualiseerimise tehnoloogiad, mis põhinevad cgroups, nimestruktuuridel (namespaces), Seccompil ja SELinuxil. Heliväljundi jaoks kasutatakse PulseAudio.
Allikas: opennet.ru
