Iseseisva paketisüsteemi Flatpak 1.14.0 väljalase

Avaldatud on Flatpak 1.14 tööriistakomplekti uus stabiilne haru, mis pakub süsteemi iseseisvate pakettide loomiseks, mis ei ole seotud konkreetsete Linuxi distributsioonidega ja töötavad spetsiaalses konteineris, mis isoleerib rakenduse ülejäänud süsteemist. Flatpaki pakettide käitamise tugi on saadaval Arch Linuxi, CentOS-i, Debiani, Fedora, Gentoo, Mageia, Linux Mint, Alt Linuxi ja Ubuntu jaoks. Flatpaki paketid sisalduvad Fedora hoidlas ja neid toetab natiivne GNOME-i rakenduste haldur.

Peamised uuendused Flatpak 1.14 harus:

  • Olekus (.local/state) olevate failide jaoks on võimalik luua kataloog ja määrata sellele kataloogile osutav keskkonnamuutuja XDG_STATE_HOME.
  • Kerneli moodulite olemasolu kindlakstegemiseks on lisatud tingimuslikud kontrollid kujul "have-kernel-module-name" (varem pakutud have-intel-gpu kontrolli universaalne analoog, mille asemel on väljend "have-kernel-module-i915" ” saab nüüd kasutada).
  • Käsk “flatpak document-unexport —doc-id=…” on rakendatud.
  • Pakutakse Appstreami metaandmete eksporti põhikeskkonnas kasutamiseks.
  • Lisatud Flatpaki käskude täitmise reeglid Fishi kestale
  • Võrgujuurdepääs X11 ja PulseAudio teenustele on lubatud (kui vastavad sätted on lisatud).
  • Giti hoidla põhiharu on ümber nimetatud "ülemast" asemel "peamiseks", kuna sõna "master" on hiljuti peetud poliitiliselt ebakorrektseks.
  • Käivitusskriptid kirjutatakse nüüd ümber, kui rakendus on ümber nimetatud.
  • SDK- ja silumisinfofailide installimiseks on installikäsule lisatud suvandid "--include-sdk" ja "--include-debug".
  • Flatpakref- ja flatpakrepo-failidele lisati tugi parameetrile “DeploySideloadCollectionID”. Kui see on määratud, määratakse kogu ID kaughoidla lisamisel, mitte pärast metaandmete laadimist.
  • Lubatud luua pesastatud liivakastikeskkondi seansside käitlejatele, millel on eraldi MPRIS (Media Player Remote Interface Specification) nimed.
  • Käsurea utiliidid pakuvad nüüd teavet aegunud käitusaja laienduste kasutamise kohta.
  • Desinstalli käsk rakendab kinnitustaotluse enne veel kasutusel olevate käitusaja või käitusaja laiendite eemaldamist.
  • Lisatud tugi suvandile "--socket=gpg-agent" käskudele nagu "flatpak run".
  • Libostree's on parandatud haavatavus, mis võib lubada kasutajal kustutada süsteemis suvalisi faile, manipuleerides flatpak-system-helper töötlejaga (saadedes kustutamistaotluse spetsiaalselt vormindatud haru nimega). Probleem ilmneb ainult vanemates Flatpaki ja libostree versioonides, mis on välja antud enne 2018. aastat (< 0.10.2) ega mõjuta praeguseid väljaandeid.

Tuletame meelde, et Flatpak võimaldab rakenduste arendajatel lihtsustada nende programmide levitamist, mis ei sisaldu standardsetes levitamishoidlates, valmistades ette ühe universaalse konteineri ilma iga distributsiooni jaoks eraldi komplekte loomata. Turvateadlikel kasutajatel võimaldab Flatpak käivitada küsitava rakenduse konteineris, võimaldades juurdepääsu ainult rakendusega seotud võrgufunktsioonidele ja kasutajafailidele. Uutest toodetest huvitatud kasutajatele võimaldab Flatpak installida rakenduste uusimad test- ja stabiilsed versioonid, ilma et oleks vaja süsteemis muudatusi teha. Näiteks Flatpaki paketid on ehitatud LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio jne jaoks.

Paketi suuruse vähendamiseks sisaldab see ainult rakendusespetsiifilisi sõltuvusi ning põhisüsteemi- ja graafikateekid (GTK, Qt, GNOME ja KDE teegid jne) on loodud pistikprogrammide standardse käituskeskkonnana. Peamine erinevus Flatpaki ja Snapi vahel seisneb selles, et Snap kasutab põhisüsteemi keskkonna komponente ja isolatsiooni, mis põhineb süsteemikõnede filtreerimisel, samas kui Flatpak loob süsteemist eraldi konteineri ja töötab suurte käitusaegsete komplektidega, pakkudes pakette mitte sõltuvustena, vaid standardina. need süsteemikeskkonnad (näiteks kõik GNOME või KDE programmide tööks vajalikud teegid).

Lisaks spetsiaalse hoidla kaudu installitud standardsele süsteemikeskkonnale (käitusajale) on kaasas rakenduse tööks vajalikud täiendavad sõltuvused (pakett). Kokkuvõttes moodustavad käitusaeg ja komplekt konteineri täitmise, hoolimata asjaolust, et käitusaeg on eraldi installitud ja seotud korraga mitme konteineriga, mis võimaldab vältida konteineritele ühiste süsteemifailide dubleerimist. Ühele süsteemile võib olla installitud mitu erinevat käitusaega (GNOME, KDE) või sama käitusaja mitu versiooni (GNOME 3.40, GNOME 3.42). Sõltuvusena rakendust sisaldav konteiner kasutab sidumist ainult konkreetse käitusajaga, võtmata arvesse käitusaja moodustavaid üksikuid pakette. Kõik puuduvad elemendid pakitakse otse rakendusega. Kui konteiner on moodustatud, ühendatakse käitusaja sisu partitsioonina /usr ja pakett kataloogi /app.

Käitusaja ja rakenduste konteinerid on ehitatud OSTree tehnoloogia abil, milles pilti värskendatakse aatomipõhiselt Giti-laadsest hoidlast, mis võimaldab levitamiskomponentidele rakendada versioonikontrolli meetodeid (näiteks saate süsteemi kiiresti tagasi kerida eelmine olek). RPM-paketid tõlgitakse OSTree hoidlasse spetsiaalse rpm-ostree kihi abil. Töökeskkonnas eraldiseisvat pakettide installimist ja uuendamist ei toetata, süsteemi uuendatakse mitte üksikute komponentide tasemel, vaid tervikuna, muutes oma olekut aatomiliselt. Pakub tööriistu värskenduste järkjärguliseks rakendamiseks, välistades vajaduse pilti iga värskendusega täielikult asendada.

Loodud isoleeritud keskkond on kasutatavast distributsioonist täiesti sõltumatu ja paketi õigete seadistustega ei oma juurdepääsu kasutaja või põhisüsteemi failidele ja protsessidele, ei pääse otse seadmetele juurde, välja arvatud DRI kaudu väljund, ja kõned võrgu alamsüsteemile. Graafika väljund ja sisendi korraldamine on rakendatud Waylandi protokolli või X11 pesa edastamise kaudu. Väliskeskkonnaga suhtlemine põhineb DBus-sõnumisüsteemil ja spetsiaalsel Portals API-l.

Isoleerimiseks kasutatakse Bubblewrapi kihti ja traditsioonilisi Linuxi konteineri virtualiseerimistehnoloogiaid, mis põhinevad cgroupide, nimeruumide, Seccompi ja SELinuxi kasutamisel. PulseAudio kasutatakse heli väljastamiseks. Sel juhul saab isoleerimise keelata, mida paljude populaarsete pakettide arendajad kasutavad failisüsteemile ja süsteemi kõikidele seadmetele täieliku juurdepääsu saamiseks. Näiteks GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ja VLC on varustatud piiratud isolatsioonirežiimiga, mis jätab täieliku juurdepääsu kodukataloogile. Kui kodukataloogile juurdepääsuga paketid on ohus, hoolimata sellest, et paketi kirjelduses on silt "liivakastis", peab ründaja oma koodi käivitamiseks muutma ainult faili ~/.bashrc. Eraldi teema on pakettide muudatuste kontroll ja usaldus paketiehitajate vastu, keda sageli ei seostata põhiprojekti või distributsioonidega.

Allikas: opennet.ru

Lisa kommentaar