Flatpak sisteminin özbaşına paketlərinin 1.18.0 versiyası

Üle pooleteise aasta arendustööde järel on avaldatud uus stabiilne Flatpak 1.18 tööriistakomplekti versioon, mis pakub süsteemi iseseisvate pakettide koostamiseks, mis ei ole seotud konkreetsete Linuxi distributsioonidega ja mida käitatakse spetsiaalses konteineris, eraldades rakenduse ülejäänud süsteemist. Flatpak-pakkide täitmise tugi on tagatud Fedora, CentOS, Debian, Arch Linuxi, Gentoo, Linux Minti, Alt Linuxi ja Ubuntu jaoks. Flatpak paketid on lisatud Fedora hoidlatest ja neid toetatakse GNOME ja KDE vaikimisi rakenduste haldamise programmides.

Flatpak 1.18 versiooni peamised uuendused:

  • Toetatakse tingimuslikke õigusi (conditional permission), mis võimaldavad volituste taotlemisel kontrollida teatud võimaluste olemasolu süsteemis või runtime'is. Näiteks seadme sisendi juurde pääsemise taotlemisel võib kasutada „—device=all” asemel õigus „—device-if=all:!has-input-device —device=input”, mis annab juurdepääsu ainult sisendiseadmetele või tagastab juurdepääsu kõigile seadmetele, kui valikuline juurdepääs ei ole runtime'is toetatud. Samuti on võimalik taotleda juurdepääsu USB-seadmetele („has-usb-device” ja „has-usb-portal”) või jagatud alam süsteemidele.
  • Lubatud on juurdepääs seadmele /dev/ntsync selleks, et pöörduda
    NTSYNC tuuma mooduli poole, mis rakendab primitiivide komplekti sünkroniseerimiseks, mida kasutatakse Windows NT tuumas ja mis võimaldavad oluliselt suurendada Windowsi mängude sooritusvõimet, mida käitatakse Wine'i abil.
  • Intel Xe GPU-le on lisatud VA-API toetuse tugi video dekodeerimise riistvaraliseks kiirendamiseks.
  • Rakendatud juurdepääs seadmele /dev/kfd (Kernel Fusion Driver) õiguste kasutamise kaudu, mis on antud DRI-seadmete jaoks. Kfd draiver rakendab liidest otse arvutuste teostamiseks AMD GPU-dele, kasutades AMD ROCm, HIP ja OpenCL.
  • Lisatud toetust käsurea valikute kasutamiseks kataloogide juurdepääsu suunamiseks isoleeritud rakendustesse.
  • Lisatud toetust kataloogile 'preinstall.d', mis määrab eelinstallitavate Flatpak-rakenduste nimekirja (et lisada Flatpak-rakendused operatsioonisüsteemi).
  • Lubatud otse rakenduste installimine konteineripiltidest OCI formaadis, mida saab laadida oma OCI-repositooriumidest ja kohalikke arhiividest.
  • Käsule 'flatpak install --from' lisatud URI 'flatpak+https://'.
  • Käsule 'flatpak run' lisatud valik '--clear-env', et puhastada keskkonnamuutujad enne rakenduse käivitamist.
  • Antud võimalus eksportida host-keerise juurkataloog isoleeritud rakenduse keskkonda, millele pääseb juurdepääsu kaudu katalooge /run/host/root.
  • Lisatud võimalus kuvada käskude täitmise tulemusi JSON formaadis.
  • Tugevdatud build-keskkonna isolatsioon — käsu «flatpak build» kaudu ei anta nüüd vaikimisi juurdepääsu hostile.
  • Lisatud käsk «reinstall» sõltuvuste (bundle) uuesti installimiseks.
  • Vaikimisi D-Bus seaded on kolitud kaustast /etc kausta /usr.
  • Käivitusaega on lühendatud, kui kasutatakse fish käsurea tõlkijat.
  • Libflatpakis on lisatud funktsioon konfiguratsiooni loomise aja saamiseks, mis võimaldab rakendustel, nagu GNOME Software, määrata, et nende vahemälus olevad andmed vajavad värskendamist.
  • Eemaldatud build-valik http_backend, nüüd kasutatakse HTTP/HTTPS laadimiseks libsoup2 asemel raamatukogu libcurl.
  • Vaikimisi on sisse lülitatud escape-järjekordade kasutamine operatsiooni edenemise näitamiseks.
  • Lubatud on anda seadme õigused edasistele sandbox-keskkondadele, mis on loodud Flatpaki portaalide kaudu.
  • Rakenduste puhul, mis on saadetud OCI-piltidena, on rakendatud mehhanism «extra-data», mis võimaldab näiteks tagada h.265 video taasesituse Flatpak pakettides Fedora Linuxi jaoks.
  • Lisatud on OCI pakettide tihendamise tugi zstd algoritmi kasutamisega, mis tihendab andmeid efektiivsemalt. Üldkasutatavaks tihendamiseks kasutatakse endiselt gzip'i, et tagada maksimaalne ühilduvus.

Flatpak lihtsustab programmide levitamist, mis ei kuulu jaotuste põhirepository'sse, valmistades ette ühtse universaalse konteineri, vabastades arendajad vajadusest luua eraldi versioone iga jaotuse jaoks. Turvalisusest hoolivatele kasutajatele võimaldab Flatpak käivitada kahtlasi rakendusi konteineris, andes valikuliselt ligipääsu ainult vajalikule võrgufunktsioonidele ja kasutaja failidele. Uudishimulikele kasutajatele võimaldab Flatpak paigaldada kõige värskemaid beetaversioone ja stabiilseid rakenduste versioone ilma süsteemi muutmata. Näiteks Flatpak pakette koostatakse LibreOffice'i, GIMP-i, Inkscape'i, Kdenlive'i, Steami, 0 A.D., Visual Studio Code'i, VLC, Slacki, Telegram Desktop'i, Android Studio jms 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 mitu erinevat „runtime'i“ (GNOME, KDE) või mitu versiooni ühe „runtime'i“ (GNOME 50, GNOME 49). Rakenduskonteiner, mis sõltub nendest, kasutab sidumist ainult teatud „runtime'iga“, arvestamata valitud „runtime'i“ moodustavaid üksikpakette. Kõik puuduvad elemendid pakitakse otse rakendusega. Konteineri loomisel montaažitakse „runtime'i“ sisu kaustana /usr, samas kui „bundle“ montaažitakse kausta /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.

Kujundatav isoleeritud keskkond ei sõltu kasutatavast jaotusest ja õigesti seadistatud korral ei pääse see kasutaja või põhissüsteemi faile ja protsesse, samuti ei saa see otse seadmetega suhelda, välja arvatud DRI kaudu väljastamine. Graafika väljastamine ja sisendi korraldamine toimub Waylandi protokolli abil või X11 sokli edastamise kaudu. Suhtlemine väliskeskkonnaga põhineb DBus sõnumivahetussüsteemil ja spetsiaalsel API Portals.

Isolatsiooni tagamiseks kasutatakse Bubblewrap'i kihti ja traditsioonilisi Linuxi konteinerite virtualiseerimise tehnoloogiaid, mis põhinevad cgroups, nimede ruumide (namespaces), Seccomp'i ja SELinux'i kasutamisel. Paketi loomisel võib isolatsiooni välja lülitada, mille kasuks otsustavad mõned paketide arendajad, et saada täielik ligipääs failisüsteemile ja kõigile seadmetele süsteemis.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster