uus stabiilne tööriistade versioon , mis pakub süsteemi iseseisvate pakettide koostamiseks, mis ei ole seotud konkreetsete Linuxi distributsioonidega ja toimivad spetsiaalses konteineris, mis isoleerib rakenduse ülejäänud süsteemist. Flatpak-pakettide toega Arch Linuxile, , Debianile, Fedoral, Gentool, Mageiale, Linux Mintile ja Ubuntule. Flatpak-paketid on lisatud Fedora hoidlarikkusse ja neid toetatakse GNOME’i rakenduste haldusprogrammis.
Peamised Flatpak 1.4 harus:
- Muudetud väliste hoidlate konfigureerimise korraldust. Kaustas /etc/flatpak/remotes.d ei kasutata enam *.conf formaadis seadistustekste, vaid tavafailid „.flatpakrepo”, mis imporditakse automaatselt esmakordsel flatpaki kasutamisel. Neid faile on võimalus vabalt redigeerida ja kustutada, sarnaselt käsitsi lisatud hoidlatele;
- Süsteemipakettide installatsioonide korraldus on oluliselt muutunud. Varasemates väljaannetes installiti pakett esmalt kasutaja ajutisse kausta, seejärel kutsuti süsteemihaldur importimiseks selle kausta. See lähenemine põhjustas suuri kettaruumi kulusid, liialdatud sisendi/väljundi ning potentsiaalseid turvaprobleeme. Uues versioonis on süsteemipakettide installimiseks kaasatud spetsiaalne uus FUSE-failisüsteem, kuhu kasutaja saab kirjutada andmeid, kuid pärast kirjutamise lõpetamist blokeeritakse kasutajal juurdepääs kirjutatud failidele. Uus lähenemine hõlmab flatpaki jaoks eraldi kasutaja loomist (vaikimisi „flatpak”) ja SELinuxi reeglite muutmist;
- Lisatud võimalus määrata kliendi süsteemipoolsed filtrid välistele hoidlatele. Filtreid kasutades saab piirata hoidlas nähtavaid rakendusi, kasutades valge ja musta nimekirja mudelit;
- Lisatud teegipõhine API väliste hoidlate lisamiseks flatpakref failide kaudu;
- Lisatud seccomp-profiil Dockerile, mis võimaldab käivitada flatpaki konteinerites;
- Parandatud võimalust installida mitmest P2P-allikast (USB-mälupulkade või kohaliku võrgu kaudu);
- Käsus „flatpak remote-ls” on tagatud automaatne rakenduste filtreerimine, mille hooldamise aeg on lõppenud;
- Flatpak remote-ls ja flatpak remote-info käsitlevad valikut "--cached", mis võimaldab esitada teavet kohalikest vahemäluandmetest;
- Kasutajatele on lisatud võimalus näidata paketi eluea lõpu versiooni, pärast mida pakutakse võimalust liikuda uude haru;
- Lisatud on valik "--socket=pcsc", et pääseda juurde nuti kaartidele;
- Toetatakse mitme NVIDIA graafikakaardi süsteeme;
- Dconf toetab nüüd sandbox-ümbrikus;
- Käsk build-update-repo on saanud täiendavad valikud "--no-update-[summary,appstream]" ja "--static-delta-ignore-ref=PATTERN";
- Oluliselt on suurenenud appstream harude regeneratsiooni kiirus suurtes hoidlates.
Meeldetuletuseks, et Flatpak arendajatele võimaldab oma programmide levitamist, mis ei kuulu distributeerimise põhirepositoori, ühe universaalse konteineri abil, ilma et oleks vaja luua eraldi kogusid iga distributsiooni jaoks. Kasutajatele, kes hoolivad turvalisusest, võimaldab Flatpak kahtlase rakenduse käivitamist konteineris, andes juurdepääsu ainult võrgufunktsioonidele ja kasutaja failidele, mis on seotud rakendusega. Uudishimulikele kasutajatele võimaldab Flatpak installida uusimaid katse- ja stabiilseid rakenduste väljalasked, ilma et peaks süsteemis muudatusi tegema. Näiteks praeguseks on Flatpak-paketid juba LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio jne.
Paketi suuruse vähendamiseks sisaldab see ainult rakendusele spetsiifilisi sõltuvusi, samas kui põhiskeemid ja graafilised raamatukogud (Gtk+, Qt, GNOME ja KDE raamatukogud jne) on välja kujundatud kui lisatavad standardsete runtime-ümbriste kujul. Flatpaki peamine erinevus Snapist on see, et Snap kasutab põhiskeemi komponente ja isolatsiooni, mis põhineb süsteemi väljakutsete filtreerimisel, samas kui Flatpak loob süsteemist eraldi konteineri ja töötleb suuri runtime-kogusid, pakkudes sõltuvuste asemel mitte pakette, vaid standardseid süsteemi ümbrikke (näiteks kõik raamatukogud, mis on vajalikud GNOME või KDE programmide tööks).
Peale standardse süsteemi ümbrise (runtime), mis installitakse spetsiaalse kaudu , pakuvad täiendavaid sõltuvusi (bundle), mis on vajalikud rakenduse töötamiseks. Kokku runtime ja bundle moodustavad konteineri sisu, samas kui runtime installitakse eraldi ja seondub korraga mitme konteineriga, mis võimaldab vältida üldiste süsteemifailide dubleerimist konteinerite vahel. Ühes süsteemis võib olla installitud mitu erinevat runtime'i (GNOME, KDE) või mitu versiooni ühest runtime'ist (GNOME 3.26, GNOME 3.28). Rakenduse konteiner, mis kasutab sõltuvust, seondub ainult kindla runtime'iga, arvestamata eraldi pakette, millest runtime koosneb. Kõik puuduvad elemendid pakitakse otse rakendusega kaasa. Konteineri loomisel monteeritakse runtime'i sisu kaustana /usr, ja bundle monteeritakse kausta /app.
Runtime ja rakenduste konteinerite sisu moodustatakse tehnoloogia abil , mille käigus pilt uuendatakse aatomiliselt Git-sarnastest hoidlatest, mis võimaldavad rakendada versioonihaldusmeetodeid jaotuse komponentidele (näiteks saab süsteemi kiiresti tagasi eelnenud olekusse viia). RPM-paketid edastatakse OSTree'i hoidlasse spetsiaalse kihina . Eraldi pakettide installimine ja värskendamine töökeskkonnas ei ole toetatud, süsteem uuendatakse mitte eraldi komponentide tasemel, vaid täielikult, aatomiliselt muutes oma olekut. Pakutakse vahendeid inkrementaalsete värskenduste rakendamiseks, mis vabastavad vajadusest iga värskenduse jaoks kogu pilti asendada.
Kujundatav isoleeritud keskkond on täielikult sõltumatu kasutatavast jaotusest ja korralike paketiseadetega ei pääse see kasutaja või põhise süsteemi faile ja protsessidele, ega saa otse riistvaraga suhelda, välja arvatud DRI kaudu väljund ja võrgu alamsüsteem. Graafika väljund ja sisendi korraldamine kasutades Waylandi protokolli või X11 socketi edastamise kaudu. Suhtlemine väliskeskkonnaga põhineb DBus sõnumivahetuse süsteemil ja spetsiaalsel API Portals. Isolatsiooniks kihiks ja traditsioonilised Linuxile iseloomulikud konteinerite virtualiseerimise tehnoloogiad, mis põhinevad cgroups, nimede ruumide (namespaces), Seccomp ja SELinux'i kasutamisel. Heliväljundiks kasutatakse PulseAudio.
Allikas: opennet.ru
