Vydanie systému samostatných balíkov Flatpak 1.14.0

Bola zverejnená nová stabilná vetva sady nástrojov Flatpak 1.14, ktorá poskytuje systém na vytváranie samostatných balíkov, ktoré nie sú viazané na konkrétne distribúcie Linuxu a bežia v špeciálnom kontajneri, ktorý izoluje aplikáciu od zvyšku systému. Podpora spustenia balíkov Flatpak je poskytovaná pre Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux a Ubuntu. Balíky Flatpak sú zahrnuté v repozitári Fedory a sú podporované natívnym manažérom aplikácií GNOME.

Kľúčové inovácie v pobočke Flatpak 1.14:

  • Je možné vytvoriť adresár pre súbory v stave (.local/state) a nastaviť premennú prostredia XDG_STATE_HOME smerujúcu do tohto adresára.
  • Pridané podmienené kontroly tvaru „have-kernel-module-name“ na určenie prítomnosti modulov jadra (univerzálny analóg predtým navrhovanej kontroly have-intel-gpu, namiesto ktorej výraz „have-kernel-module-i915 ” teraz možno použiť).
  • Bol implementovaný príkaz „flatpak document-unexport —doc-id=…“.
  • Poskytuje sa export metadát Appstream na použitie v hlavnom prostredí.
  • Pridané pravidlá dokončenia príkazu flatpak pre shell Fish
  • Sieťový prístup k službám X11 a PulseAudio je povolený (ak sú pridané príslušné nastavenia).
  • Hlavná vetva v úložisku Git bola premenovaná z „master“ na „main“, pretože slovo „master“ sa nedávno považovalo za politicky nesprávne.
  • Spúšťacie skripty sú teraz prepísané, ak je aplikácia premenovaná.
  • Do príkazu install boli pridané možnosti „--include-sdk“ a „--include-debug“ na inštaláciu súpravy SDK a súborov debuginfo.
  • Pridaná podpora pre parameter „DeploySideloadCollectionID“ do súborov flatpakref a flatpakrepo. Keď je nastavený, ID kolekcie sa nastaví pri pridávaní vzdialeného úložiska, a nie po načítaní metadát.
  • Povolené vytváranie vnorených prostredí karantény pre manipulátory v reláciách so samostatnými názvami MPRIS (Media Player Remote Interfacing Specification).
  • Pomocné programy príkazového riadka teraz poskytujú informácie o používaní zastaraných rozšírení runtime.
  • Príkaz uninstall implementuje požiadavku na potvrdenie pred odstránením runtime alebo rozšírení runtime, ktoré sa stále používajú.
  • Pridaná podpora pre voľbu „--socket=gpg-agent“ k príkazom ako „flatpak run“.
  • V libostree bola opravená chyba zabezpečenia, ktorá by mohla používateľovi umožniť vymazať ľubovoľné súbory v systéme manipuláciou s obslužným programom flatpak-system-helper (odoslaním žiadosti o vymazanie so špeciálne naformátovaným názvom vetvy). Problém sa vyskytuje iba v starších verziách Flatpak a libostree vydaných pred rokom 2018 (< 0.10.2) a neovplyvňuje aktuálne vydania.

Pripomeňme, že Flatpak umožňuje vývojárom aplikácií zjednodušiť distribúciu ich programov, ktoré nie sú zahrnuté v štandardných distribučných repozitároch, prípravou jedného univerzálneho kontajnera bez vytvárania samostatných zostáv pre každú distribúciu. Používateľom, ktorí si uvedomujú bezpečnosť, Flatpak umožňuje spustiť spornú aplikáciu v kontajneri, pričom poskytuje prístup iba k sieťovým funkciám a užívateľským súborom spojeným s aplikáciou. Používateľom, ktorí sa zaujímajú o nové produkty, Flatpak umožňuje inštalovať najnovšie testovacie a stabilné vydania aplikácií bez nutnosti vykonávať zmeny v systéme. Napríklad balíky Flatpak sú vytvorené pre LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio atď.

Aby sa zmenšila veľkosť balíka, obsahuje iba závislosti špecifické pre aplikáciu a základné systémové a grafické knižnice (GTK, Qt, GNOME a KDE knižnice atď.) sú navrhnuté ako plug-in štandardné runtime prostredia. Kľúčový rozdiel medzi Flatpak a Snap je v tom, že Snap používa komponenty hlavného systémového prostredia a izoláciu založenú na filtrovaní systémových volaní, zatiaľ čo Flatpak vytvára kontajner oddelený od systému a pracuje s veľkými runtime sadami, pričom neposkytuje balíčky ako závislosti, ale štandard. systémových prostredí (napríklad všetky knižnice potrebné na fungovanie programov GNOME alebo KDE).

Okrem štandardného systémového prostredia (runtime), inštalovaného prostredníctvom špeciálneho úložiska, sú dodávané ďalšie závislosti (bundle) potrebné pre chod aplikácie. Celkovo runtime a bundle tvoria náplň kontajnera, a to aj napriek tomu, že runtime je inštalované samostatne a viazané na niekoľko kontajnerov naraz, čo umožňuje vyhnúť sa duplikácii systémových súborov spoločných pre kontajnery. Jeden systém môže mať nainštalovaných niekoľko rôznych runtime (GNOME, KDE) alebo niekoľko verzií toho istého runtime (GNOME 3.40, GNOME 3.42). Kontajner s aplikáciou ako závislosťou používa väzbu len na konkrétny runtime bez toho, aby bral do úvahy jednotlivé balíky, ktoré tvoria runtime. Všetky chýbajúce prvky sú pribalené priamo k aplikácii. Keď sa vytvorí kontajner, obsah runtime sa pripojí ako oddiel /usr a zväzok sa pripojí do adresára /app.

Runtime a aplikačné kontajnery sú vytvorené pomocou technológie OSTree, v ktorej sa obraz atomicky aktualizuje z úložiska typu Git, čo umožňuje použitie metód riadenia verzií na komponenty distribúcie (napríklad môžete rýchlo vrátiť systém späť na predchádzajúci stav). Balíky RPM sa prekladajú do úložiska OSTree pomocou špeciálnej vrstvy rpm-ostree. Samostatná inštalácia a aktualizácia balíkov v rámci pracovného prostredia nie je podporovaná, systém sa neaktualizuje na úrovni jednotlivých komponentov, ale ako celku, pričom atómovo mení svoj stav. Poskytuje nástroje na postupnú aplikáciu aktualizácií, čím sa eliminuje potreba úplne nahradiť obraz pri každej aktualizácii.

Vygenerované izolované prostredie je úplne nezávislé od použitej distribúcie a pri správnom nastavení balíka nemá prístup k súborom a procesom používateľa ani hlavného systému a nemôže priamo pristupovať k zariadeniu, s výnimkou výstupu cez DRI a volania. do sieťového subsystému. Organizácia grafického výstupu a vstupu je realizovaná pomocou protokolu Wayland alebo cez X11 socket forwarding. Interakcia s externým prostredím je založená na systéme správ DBus a špeciálnom API Portals.

Na izoláciu sa používa vrstva Bubblewrap a tradičné technológie virtualizácie kontajnerov Linuxu, založené na použití cgroups, namespaces, Seccomp a SELinux. PulseAudio sa používa na výstup zvuku. V tomto prípade je možné zakázať izoláciu, čo používajú vývojári mnohých populárnych balíkov na získanie plného prístupu k systému súborov a všetkým zariadeniam v systéme. Napríklad GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity a VLC prichádzajú s obmedzeným režimom izolácie, ktorý ponecháva úplný prístup k domovskému adresáru. Ak sú ohrozené balíky s prístupom do domovského adresára, napriek prítomnosti označenia „sandboxed“ v popise balíka, útočníkovi stačí zmeniť súbor ~/.bashrc, aby mohol spustiť svoj kód. Samostatnou otázkou je kontrola zmien v balíkoch a dôvera v tvorcov balíkov, ktorí často nie sú spojení s hlavným projektom alebo distribúciami.

Zdroj: opennet.ru

Pridať komentár