Verze systému samostatných balíčků Flatpak 1.14.0

Byla zveřejněna nová stabilní verze nástroje Flatpak 1.14, který poskytuje systém pro vytváření soběstačných balíčků, které nejsou vázány na konkrétní distribuce Linuxu a běží ve speciálním kontejneru, který izoluje aplikaci od zbytku systému. Podpora pro běh Flatpak balíčků je zajištěna pro Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux a Ubuntu. Flatpak balíčky jsou zahrnuty v repozitáři Fedora a jsou podporovány v nativním správci aplikací GNOME.

Hlavní novinky ve verzi Flatpak 1.14:

  • Bylo zajištěno vytvoření adresáře pro soubory ve stavu (.local/state) a nastavení proměnné prostředí XDG_STATE_HOME ukazující na tento adresář.
  • Byly přidány podmínkové kontroly typu „have-kernel-module-jméno“ pro určení přítomnosti modulů jádra (univerzální ekvivalent dříve navrhované kontroly have-intel-gpu, místo které nyní lze použít výraz „have-kernel-module-i915“).
  • Byla realizována příkazová řada „flatpak document-unexport —doc-id=…“.
  • Byl zajištěn export metadat Appstream pro použití v hlavním prostředí.
  • Byla přidána pravidla pro automatické doplňování příkazů flatpak pro příkazovou řádku Fish.
  • Byl povolen síťový přístup k službám X11 a PulseAudio (při přidání příslušných nastavení).
  • Hlavní větev v Git repozitáři byla přejmenována z „master“ na „main“, protože slovo „master“ je v poslední době považováno za politicky nekorektní.
  • Bylo zajištěno přepsání spouštěcích skriptů v případě přejmenování aplikace.
  • Do příkazu install byly přidány možnosti „—include-sdk“ a „—include-debug“ pro instalaci SDK a souborů debuginfo.
  • Do souborů flatpakref a flatpakrepo byla přidána podpora parametru „DeploySideloadCollectionID“, při instalaci kterého bude identifikátor kolekce nastaven při přidání vzdáleného repozitáře, nikoli po stažení metadat.
  • Bylo povoleno vytváření vnořených sandboxů pro obslužné programy v relacích s různými názvy MPRIS (Media Player Remote Interfacing Specification).
  • V příkazových utilitách byl zajištěn výstup informací o používání zastaralých runtime rozšíření.
  • V příkazu uninstall byla realizována žádost o potvrzení před odstraněním runtime nebo runtime rozšíření, která jsou stále používána.
  • Do příkazů jako „flatpak run“ byla přidána podpora možnosti „—socket=gpg-agent“.
  • V libostree byla odstraněna zranitelnost, která potenciálně umožňuje uživateli smazat libovolné soubory v systému prostřednictvím manipulace s pomocníkem flatpak-system-helper (odesláním žádosti o smazání se speciálně formátovaným názvem větve). Problém se projevuje pouze ve starších verzích Flatpak a libostree vydaných před rokem 2018 (< 0.10.2) a netýká se aktuálních verzí.

Připomínáme, že Flatpak dává vývojářům aplikací možnost usnadnit distribuci svých programů, které nejsou součástí oficiálních repozitářů distribucí, přípravou jednoho univerzálního kontejneru, aniž by bylo nutné vytvářet samostatné sestavení pro každou distribuci. Uživatelům, kteří dbají na bezpečnost, Flatpak umožňuje spustit problematickou aplikaci v kontejneru, přičemž poskytuje přístup pouze k síťovým funkcím a uživatelským souborům souvisejícím s aplikací. Uživatelům, kteří se zajímají o novinky, Flatpak umožňuje instalaci nejnovějších testovacích a stabilních verzí aplikací, aniž by bylo nutné zasahovat do systému. Například Flatpak balíčky jsou k dispozici pro LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio atd.

Aby se snížila velikost balíčku, zahrnuje pouze závislosti specifické pro aplikaci, zatímco základní systémové a grafické knihovny (GTK, Qt, knihovny GNOME a KDE atd.) jsou dodány jako připojitelné typové runtime prostředí. Klíčový rozdíl mezi Flatpak a Snap spočívá v tom, že Snap používá komponenty prostředí hlavního systému a izolaci založenou na filtrování systémových volání, zatímco Flatpak vytváří oddělený kontejner od systému a operuje s velkými sadami runtime, přičemž jako závislosti poskytuje nikoli balíčky, ale typová systémová prostředí (například všechny knihovny potřebné pro fungování programů GNOME nebo KDE).

Kromě typického systémového prostředí (runtime), které se instaluje prostřednictvím speciálního repozitáře, jsou dodávány další závislosti (bundle) potřebné pro chod aplikace. Celkově runtime a bundle tvoří obsah kontejneru, přičemž runtime se instaluje odděleně a váže se na více kontejnerů současně, což umožňuje vyhnout se duplikaci sdílených systémových souborů pro kontejnery. V jednom systému může být nainstalováno několik různých runtime (GNOME, KDE) nebo několik verzí jednoho runtime (GNOME 3.40, GNOME 3.42). Kontejner s aplikací jako závislost používá vazbu pouze na určité runtime, bez ohledu na jednotlivé balíčky, ze kterých se runtime skládá. Všechny chybějící prvky jsou zabaleny přímo spolu s aplikací. Při vytváření kontejneru se obsah runtime montuje jako oddíl /usr a bundle se montuje do adresáře /app.

Obsah runtime a kontejnerů aplikací se vytváří pomocí technologie OSTree, při které se obraz atomárně aktualizuje z Git-podobného úložiště, což umožňuje aplikovat metody verzionování na komponenty distribuce (například je možné rychle vrátit systém do předchozího stavu). RPM balíčky se překrývají do repozitáře OSTree pomocí speciální vrstvy rpm-ostree. Samostatná instalace a aktualizace balíčků uvnitř pracovního prostředí není podporována, systém se aktualizuje nikoli na úrovni jednotlivých komponentů, ale celkově, atomárně mění své stavy. Jsou poskytovány prostředky pro inkrementální aplikaci aktualizací, které osvobozují od nutnosti úplné výměny obrazu při každé aktualizaci.

Vytvářené izolované prostředí je plně nezávislé na používané distribuci a při správném nastavení balíčku nemá přístup k souborům a procesům uživatele nebo základního systému, nemůže přímo komunikovat s hardwarem, kromě výstupu přes DRI a požadavků na síťový subsystém. Výstup grafiky a organizace vstupu jsou realizovány prostřednictvím protokolu Wayland nebo pomocí přesměrování socketu X11. Interakce s vnějším prostředím je založena na systému zpráv DBus a speciálním API Portals.

Pro izolaci se používá vrstva Bubblewrap a tradiční technologie kontejnerové virtualizace pro Linux, které jsou založeny na používání cgroups, jmenných prostorů (namespaces), Seccomp a SELinux. Pro výstup zvuku se používá PulseAudio. Izolaci je možné vypnout, čehož využívají vývojáři mnoha populárních balíčků, aby získali plný přístup k systému souborů a všem zařízení v systému. Například s omezeným režimem izolace, který ponechává plný přístup k domovskému adresáři, se dodávají balíčky GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity a VLC. V případě kompromitace balíčků s přístupem k domovskému adresáři, navzdory tomu, že v popisu balíčku je označení „sandboxed“, útočníkovi stačí upravit soubor ~/\.bashrc, aby mohl spustit svůj kód. Samostatnou otázkou je kontrola provádění změn v balíčcích a důvěra ve stavebníky balíčků, kteří často nejsou spojeni s hlavním projektem nebo distribucemi.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster