„Flatpak 1.14.0“ savarankiško paketo sistemos išleidimas

Paskelbta nauja stabili „Flatpak 1.14“ įrankių rinkinio atšaka, kuri suteikia savarankiškų paketų, nesusietų su konkrečiais „Linux“ paskirstymais, kūrimo sistemą, veikiančią specialiame konteineryje, kuris izoliuoja programą nuo likusios sistemos. „Flatpak“ paketų palaikymas teikiamas „Arch Linux“, „CentOS“, „Debian“, „Fedora“, „Gentoo“, „Mageia“, „Linux Mint“, „Alt Linux“ ir „Ubuntu“. „Flatpak“ paketai yra įtraukti į „Fedora“ saugyklą ir juos palaiko vietinė GNOME programų tvarkyklė.

Pagrindinės naujovės Flatpak 1.14 filiale:

  • Galima sukurti būsenos (.local/state) failų katalogą ir nustatyti XDG_STATE_HOME aplinkos kintamąjį, nukreipiantį į šį katalogą.
  • Pridėtos formos „have-kernel-module-name“ sąlyginiai patikrinimai, siekiant nustatyti branduolio modulių buvimą (universalus anksčiau pasiūlytos have-intel-gpu patikros analogas, vietoj kurio yra posakis „have-kernel-module-i915“ “ dabar galima naudoti).
  • Įdiegta komanda „flatpak document-unexport —doc-id=…“.
  • Pateikiamas Appstream metaduomenų eksportavimas, skirtas naudoti pagrindinėje aplinkoje.
  • Pridėtos Flatpak komandos užbaigimo taisyklės, skirtos Fish shell
  • Leidžiama prieiga prie tinklo prie X11 ir PulseAudio paslaugų (jei pridedami atitinkami nustatymai).
  • Pagrindinė „Git“ saugyklos šaka buvo pervadinta iš „master“ į „pagrindinį“, nes žodis „master“ neseniai buvo laikomas politiškai neteisingu.
  • Jei programa pervardijama, paleidimo scenarijai dabar perrašomi.
  • Prie diegimo komandos pridėtos parinktys „--include-sdk“ ir „--include-debug“, kad būtų galima įdiegti SDK ir derinimo informacijos failus.
  • Prie flatpakref ir flatpakrepo failų pridėtas parametro „DeploySideloadCollectionID“ palaikymas. Nustačius rinkinio ID bus nustatytas pridedant nuotolinę saugyklą, o ne įkeliant metaduomenis.
  • Leidžiama kurti įdėtas smėlio dėžės aplinkas seansų tvarkytojams su atskirais MPRIS (Media Player Remote Interfacing Specification) pavadinimais.
  • Komandinės eilutės paslaugų programos dabar teikia informaciją apie pasenusių vykdymo laiko plėtinių naudojimą.
  • Pašalinimo komanda įgyvendina patvirtinimo užklausą prieš pašalindama vykdymo ar vykdymo laiko plėtinius, kurie vis dar naudojami.
  • Pridėtas parinkties „--socket=gpg-agent“ palaikymas tokioms komandoms kaip „flatpak run“.
  • Libostree buvo ištaisytas pažeidžiamumas, dėl kurio vartotojas gali ištrinti savavališkus sistemos failus manipuliuojant flatpak-sistemos pagalbininko tvarkykle (siunčiant ištrynimo užklausą su specialiai suformatuotu šakos pavadinimu). Problema atsiranda tik senesnėse „Flatpak“ ir „libostree“ versijose, išleistose iki 2018 m. (< 0.10.2), ir neturi įtakos dabartiniams leidimams.

Priminsime, kad „Flatpak“ leidžia programų kūrėjams supaprastinti savo programų, kurios nėra įtrauktos į standartines platinimo saugyklas, platinimą, paruošiant vieną universalų konteinerį, nekuriant atskirų rinkinių kiekvienam platinimui. Saugumu besirūpinantiems vartotojams „Flatpak“ leidžia paleisti abejotiną programą konteineryje, suteikiant prieigą tik prie tinklo funkcijų ir su programa susijusių vartotojo failų. Vartotojams, besidomintiems naujais produktais, „Flatpak“ leidžia įdiegti naujausius bandomuosius ir stabilius programų leidimus, nereikia keisti sistemos. Pavyzdžiui, Flatpak paketai sukurti LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio ir kt.

Kad būtų sumažintas paketo dydis, jame yra tik konkrečios programos priklausomybės, o pagrindinės sistemos ir grafikos bibliotekos (GTK, Qt, GNOME ir KDE bibliotekos ir t. t.) yra sukurtos kaip įskiepio standartinės vykdymo aplinkos. Pagrindinis skirtumas tarp „Flatpak“ ir „Snap“ yra tas, kad „Snap“ naudoja pagrindinės sistemos aplinkos komponentus ir izoliaciją, pagrįstą filtravimo sistemos iškvietimais, o „Flatpak“ sukuria atskirą konteinerį nuo sistemos ir veikia su dideliais vykdymo laiko rinkiniais, pateikdamas ne paketus kaip priklausomybes, o standartinius. vienos sistemos aplinkos (pavyzdžiui, visos bibliotekos, reikalingos GNOME ar KDE programoms veikti).

Be standartinės sistemos aplinkos (runtime), įdiegtos per specialią saugyklą, tiekiamos papildomos priklausomybės (paketas), reikalingos programos veikimui. Iš viso vykdymo laikas ir paketas sudaro konteinerio užpildymą, nepaisant to, kad vykdymo laikas yra įdiegtas atskirai ir susietas su keliais konteineriais vienu metu, o tai leidžia išvengti konteineriams įprastų sistemos failų dubliavimo. Vienoje sistemoje gali būti įdiegtos kelios skirtingos vykdymo laikas (GNOME, KDE) arba kelios to paties vykdymo laiko versijos (GNOME 3.40, GNOME 3.42). Konteineris su programa kaip priklausomybe naudoja susiejimą tik su konkrečia vykdymo programa, neatsižvelgiant į atskirus paketus, kurie sudaro vykdymo laiką. Visi trūkstami elementai supakuoti tiesiogiai su programa. Suformavus konteinerį, vykdymo laiko turinys sujungiamas kaip /usr skaidinys, o paketas – /app kataloge.

Vykdymo laiko ir taikomųjų programų konteineriai sukurti naudojant OSTree technologiją, kurioje vaizdas atomiškai atnaujinamas iš į Git panašios saugyklos, o tai leidžia paskirstymo komponentams taikyti versijų valdymo metodus (pavyzdžiui, galite greitai grąžinti sistemą atgal į ankstesnė būsena). RPM paketai verčiami į OSTree saugyklą naudojant specialų rpm-ostree sluoksnį. Atskiras paketų diegimas ir atnaujinimas darbo aplinkoje nepalaikomas, sistema atnaujinama ne atskirų komponentų lygmeniu, o kaip visuma, atomiškai keičiant savo būseną. Suteikia įrankius laipsniškai taikyti naujinimus, todėl nereikia visiškai pakeisti vaizdo su kiekvienu atnaujinimu.

Sukurta izoliuota aplinka visiškai nepriklauso nuo naudojamo paskirstymo ir, tinkamai nustačius paketą, neturi prieigos prie vartotojo ar pagrindinės sistemos failų ir procesų, negali tiesiogiai pasiekti įrangos, išskyrus išvestį per DRI, ir skambučius į tinklo posistemį. Grafikos išvestis ir įvesties organizavimas įgyvendinami naudojant Wayland protokolą arba per X11 lizdo persiuntimą. Sąveika su išorine aplinka pagrįsta DBus pranešimų sistema ir specialia portalų API.

Išskyrimui naudojamas „Bubblewrap“ sluoksnis ir tradicinės „Linux“ konteinerių virtualizacijos technologijos, pagrįstos cgroups, vardų erdvių, „Seccomp“ ir „SELinux“ naudojimu. „PulseAudio“ naudojamas garsui išvesti. Tokiu atveju galima išjungti izoliaciją, kurią naudoja daugelio populiarių paketų kūrėjai, norėdami gauti visišką prieigą prie failų sistemos ir visų sistemos įrenginių. Pavyzdžiui, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ir VLC turi ribotą izoliavimo režimą, kuris palieka visišką prieigą prie namų katalogo. Jei paketai, turintys prieigą prie pagrindinio katalogo, yra pažeisti, nepaisant to, kad paketo aprašyme yra „smėlio dėžės“ etiketė, užpuolikui tereikia pakeisti failą ~/.bashrc, kad įvykdytų savo kodą. Atskira problema yra paketų pakeitimų kontrolė ir pasitikėjimas paketų kūrėjais, kurie dažnai nėra susiję su pagrindiniu projektu ar platinimais.

Šaltinis: opennet.ru

Добавить комментарий