Vydání systému samostatných balíčků Flatpak 1.18.0

Po roce a půl vývoje byla vydána nová stabilní větev Flatpaku 1.18. Poskytuje systém pro sestavování samostatných balíčků, které nejsou vázány na konkrétní distribuce. Linux a spouštěny ve speciálním kontejneru, který aplikaci izoluje od zbytku systému. Pro Fedoru je poskytována podpora pro spouštění balíčků Flatpak, CentOS, Debian, Oblouk Linux, Gentoo, Linux Máta, Alt Linux и UbuntuBalíčky Flatpak jsou součástí repozitáře Fedory a jsou podporovány ve standardních programech pro správu aplikací GNOME a KDE.

Klíčové inovace ve větvi Flatpak 1.18:

  • Byla implementována podpora podmíněných oprávnění. To umožňuje při žádosti o oprávnění kontrolovat dostupnost určitých funkcí v systému nebo za běhu. Pokud například potřebujete přístup ke vstupnímu zařízení, můžete místo „--device=all“ požádat o oprávnění „--device-if=all:!has-input-device --device=input“. Tím se udělí přístup pouze vstupním zařízením, nebo se vrátíte k přístupu ke všem zařízením, pokud selektivní přístup není za běhu podporován. Podobně můžete požádat o přístup k zařízením USB („has-usb-device“ a „has-usb-portal“) nebo sdíleným subsystémům.
  • Přístup k zařízení /dev/ntsync byl povolen.
    modul jádra NTSYNC, který implementuje sadu synchronizačních primitiv používaných v jádře Windows NT a umožňuje výrazně zvýšit produktivitu Windows-hry spuštěné pomocí Wine.
  • Pro grafické karty Intel Xe byla povolena podpora VA-API pro hardwarově akcelerované dekódování videa.
  • Byl implementován přístup k zařízení /dev/kfd (ovladač Kernel Fusion) s využitím oprávnění udělených pro zařízení DRI. Ovladač kfd implementuje rozhraní pro přímé provádění výpočtů na grafických procesorech AMD z aplikací používajících AMD ROCm, HIP a OpenCL.
  • Přidána podpora pro použití parametrů příkazového řádku k předání přístupu k adresáři aplikacím v sandboxu.
  • Přidána podpora pro adresář „preinstall.d“, který definuje seznam předinstalovaných aplikací Flatpak (pro zahrnutí aplikací Flatpak do operačního systému).
  • Nyní je povolena přímá instalace aplikací z obrazů kontejnerů OCI, které lze stáhnout z nativních repozitářů OCI a lokálních archivů.
  • Do příkazu „flatpak install --from“ přidána podpora pro URI „flatpak+https://“.
  • Do příkazu „flatpak run“ byla přidána volba „--clear-env“, která umožňuje vymazat proměnné prostředí před spuštěním aplikace.
  • Byla poskytnuta možnost exportovat kořenový adresář hostitelského prostředí do izolovaného aplikačního prostředí s přístupem přes adresář /run/host/root.
  • Přidána možnost výstupu výsledků provádění příkazů ve formátu JSON.
  • Izolace prostředí sestavení byla posílena – příkaz „flatpak build“ již ve výchozím nastavení neposkytuje přístup k hostiteli.
  • Přidán příkaz „reinstall“ pro přeinstalaci závislostí (bundle).
  • Výchozí nastavení D-Bus bylo přesunuto z adresáře /etc do /usr.
  • Zkrácená doba spouštění při použití interpretu příkazů fish.
  • Do knihovny libflatpak byla přidána funkce pro načtení informací o čase vytvoření konfigurace, která umožňuje aplikacím, jako je GNOME Software, určit, kdy je třeba aktualizovat data uložená v mezipaměti.
  • Možnost sestavení http_backend byla odstraněna; pro načítání přes HTTP/HTTPS se nyní místo knihovny libsoup2 používá knihovna libcurl.
  • Ve výchozím nastavení je použití escape sekvencí k indikaci průběhu operace povoleno.
  • Povoleno delegovat oprávnění zařízení do vnořených sandboxových prostředí vytvořených prostřednictvím portálů Flatpak.
  • Pro aplikace dodávané jako obrazy OCI byl implementován mechanismus „extra dat“, který například umožňuje přehrávání videa h.265 v balíčcích Fedora Flatpak. Linux.
  • Přidána podpora pro kompresi OCI balíčků pomocí algoritmu zstd, který poskytuje efektivnější kompresi dat. Gzip zůstává výchozí metodou komprese pro maximální kompatibilitu.

Flatpak zjednodušuje distribuci programů, které nejsou zahrnuty ve standardních distribučních repozitářích, vytvořením jediného univerzálního kontejneru, čímž vývojářům eliminuje nutnost vytvářet samostatné sestavení pro každou distribuci. Uživatelům, kteří dbají na bezpečnost, Flatpak umožňuje spustit pochybnou aplikaci v kontejneru a udělit jim selektivní přístup pouze k nezbytným síťovým funkcím a uživatelským souborům. Uživatelům, kteří se zajímají o nová vydání, Flatpak umožňuje nainstalovat nejnovější testovací a stabilní verze aplikací bez nutnosti provádět jakékoli změny v systému. Balíčky Flatpak jsou například sestaveny pro LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Telegram Desktop, Android Studio atd.

Pro zmenšení velikosti jsou v balíčku zahrnuty pouze závislosti specifické pro aplikaci. Základní systémové a grafické knihovny (GTK, Qt, GNOME a KDE knihovny atd.) jsou dodávány ve formě plug-in standardních runtime prostředí. Klíčový rozdíl mezi Flatpak a Snap je v tom, že Snap používá komponenty hlavního systémového prostředí a izolaci založenou na filtrování systémových volání, zatímco Flatpak vytváří kontejner oddělený od systému a pracuje s velkými runtime sadami, které neposkytují balíčky jako závislosti, ale standard. systémové prostředí (například všechny knihovny potřebné pro provoz programů GNOME nebo KDE).

Kromě standardního systémového prostředí (runtime), instalovaného prostřednictvím speciálního úložiště, jsou dodávány další závislosti (bundle) potřebné pro provoz aplikace. Celkově „runtime“ a „bundle“ tvoří obsah kontejneru, zatímco „runtime“ se instaluje samostatně a je spojeno s několika kontejnery najednou, což vám umožňuje vyhnout se duplikaci systémových souborů společných pro kontejnery.

Jeden systém může mít nainstalovaných několik různých „runtime“ (GNOME, KDE) nebo několik verzí stejného „runtime“ (GNOME 50, GNOME 49). Kontejner s aplikací jako závislostí používá vazbu pouze na konkrétní runtime, aniž by zohledňoval jednotlivé balíčky, které tvoří vybrané runtime. Všechny chybějící prvky jsou zabaleny přímo s aplikací. Při vytváření kontejneru je obsah "runtime" připojen jako oddíl /usr a "bundle" je připojen do adresáře /app.

Runtime a aplikační kontejnery jsou vytvořeny pomocí technologie OSTree, ve které je obraz atomicky aktualizován z úložiště podobného Gitu, což umožňuje použití metod řízení verzí na distribuční komponenty (například můžete rychle vrátit systém zpět na předchozí stát). Balíčky RPM se překládají do úložiště OSTree pomocí vrstvy rpm-ostree.

Selektivní instalace a aktualizace balíčků v rámci pracovního prostředí nejsou podporovány - systém se neaktualizuje na úrovni jednotlivých komponent, ale jako celek atomicky mění svůj stav. Poskytuje nástroje pro postupnou aplikaci aktualizací, takže není nutné při každé aktualizaci zcela nahrazovat bitovou kopii.

Výsledné izolované prostředí je nezávislé na použité distribuci a při správné konfiguraci balíčku nemá přístup k souborům ani procesům uživatele ani hostitelského systému, ani nemůže přímo přistupovat k hardwaru s výjimkou výstupu přes DRI. Grafický výstup a vstup jsou implementovány pomocí protokolu Wayland nebo přesměrování socketů X11. Interakce s externím prostředím je realizována prostřednictvím systému zasílání zpráv DBus a specializovaného rozhraní Portals API.

Pro izolaci se používá vrstva bublinkové fólie a tradiční Linux technologie virtualizace kontejnerů založené na využití cgroups, jmenných prostorů, Seccomp a SELinuxPři vytváření balíčku lze zakázat izolaci, což někteří vývojáři balíčků používají k získání plného přístupu k souborovému systému a všem zařízením v systému.

Zdroj: opennet.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster