A Flatpak 1.14.0 önálló csomagrendszer kiadása

Megjelent a Flatpak 1.14-es eszközkészlet új, stabil ága, amely olyan önálló csomagok felépítésére biztosít rendszert, amelyek nem kötődnek meghatározott Linux disztribúciókhoz, és egy speciális konténerben futnak, amely elszigeteli az alkalmazást a rendszer többi részétől. A Flatpak csomagok futtatását támogatja az Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux és Ubuntu. A Flatpak csomagok megtalálhatók a Fedora tárolóban, és a natív GNOME alkalmazáskezelő támogatja őket.

Főbb újítások a Flatpak 1.14 ágban:

  • Létrehozhat egy könyvtárat a (.local/state) állapotú fájlok számára, és beállíthatja az XDG_STATE_HOME környezeti változót, amely erre a könyvtárra mutat.
  • A „have-kernel-module-name” formátumú feltételes ellenőrzések hozzáadva a kernelmodulok jelenlétének meghatározásához (a korábban javasolt have-intel-gpu ellenőrzés univerzális analógja, amely helyett a „have-kernel-module-i915” kifejezés ” most már használható).
  • A „flatpak document-unexport —doc-id=…” parancs végrehajtásra került.
  • Az Appstream metaadatok exportálása a fő környezetben való használatra biztosított.
  • Flatpak parancs-kifejezési szabályok hozzáadva a Fish shellhez
  • Az X11 és a PulseAudio szolgáltatások hálózati hozzáférése engedélyezett (ha a megfelelő beállításokat hozzáadta).
  • A Git adattár fő ágát „master”-ről „main”-ra nevezték át, mivel a „mester” szót nemrégiben politikailag inkorrektnek tekintették.
  • Az indítási szkriptek most újraírásra kerülnek, ha az alkalmazást átnevezik.
  • "--include-sdk" és "--include-debug" beállítások hozzáadva az install parancshoz az SDK és a debuginfo fájlok telepítéséhez.
  • A „DeploySideloadCollectionID” paraméter támogatása hozzáadva a flatpakref és flatpakrepo fájlokhoz. Ha be van állítva, a gyűjteményazonosító a távoli tároló hozzáadásakor lesz beállítva, nem pedig a metaadatok betöltése után.
  • Beágyazott sandbox környezetek létrehozása külön MPRIS (Media Player Remote Interfacing Specification) névvel rendelkező munkamenetek kezelői számára.
  • A parancssori segédprogramok mostantól információkat szolgáltatnak az elavult futásidejű bővítmények használatáról.
  • Az uninstall parancs megerősítő kérést hajt végre, mielőtt eltávolítaná a még használatban lévő futásidejű vagy futásidejű bővítményeket.
  • A „--socket=gpg-agent” opció támogatása az olyan parancsokhoz, mint a „flatpak run”.
  • A libostree egy biztonsági rését javították, amely potenciálisan lehetővé teheti a felhasználó számára, hogy tetszőleges fájlokat töröljön a rendszerről a flatpak-system-helper kezelő manipulálásával (törlési kérés küldése speciálisan formázott ágnévvel). A probléma csak a Flatpak és a libostree régebbi, 2018 előtt kiadott verzióiban jelenik meg (< 0.10.2), és nem érinti a jelenlegi kiadásokat.

Emlékeztetünk arra, hogy a Flatpak lehetővé teszi az alkalmazásfejlesztők számára, hogy egyszerűsítsék a szabványos terjesztési tárolókban nem szereplő programjaik elosztását azáltal, hogy egyetlen univerzális tárolót készítenek anélkül, hogy minden disztribúcióhoz külön összeállításokat hoznának létre. A biztonságtudatos felhasználók számára a Flatpak lehetővé teszi egy megkérdőjelezhető alkalmazás futtatását egy konténerben, amely csak az alkalmazáshoz kapcsolódó hálózati funkciókhoz és felhasználói fájlokhoz biztosít hozzáférést. Az új termékek iránt érdeklődő felhasználók számára a Flatpak lehetővé teszi az alkalmazások legújabb teszt- és stabil kiadásainak telepítését anélkül, hogy módosítani kellene a rendszeren. Például a Flatpak csomagok a LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio stb. számára készültek.

A csomag méretének csökkentése érdekében csak az alkalmazás-specifikus függőségeket tartalmazza, az alapvető rendszer- és grafikus könyvtárakat (GTK, Qt, GNOME és KDE könyvtárak stb.) pedig beépülő szabványos futási környezetként tervezték. A Flatpak és a Snap közötti fő különbség az, hogy a Snap a fő rendszerkörnyezet összetevőit és a rendszerhívások szűrésen alapuló elkülönítést használja, míg a Flatpak a rendszertől különálló konténert hoz létre, és nagy futásidejű készletekkel működik, nem függőségekként, hanem szabványos csomagokat biztosítva. rendszerkörnyezetek (például a GNOME vagy KDE programok működéséhez szükséges összes könyvtár).

A speciális tárolón keresztül telepített szabványos rendszerkörnyezeten (futásidejű) túlmenően az alkalmazás működéséhez szükséges további függőségek (csomagok) is rendelkezésre állnak. Összességében a futásidő és a köteg képezi a tároló feltöltését, annak ellenére, hogy a futási idő külön van telepítve, és egyszerre több tárolóhoz van kötve, ami lehetővé teszi, hogy elkerülje a tárolókban megszokott rendszerfájlok megkettőzését. Egy rendszeren több különböző futtatókörnyezet (GNOME, KDE) vagy ugyanannak a futási környezetnek több verziója is telepítve lehet (GNOME 3.40, GNOME 3.42). Egy alkalmazást függőségként tartalmazó tároló csak egy adott futási környezethez használ kötést, anélkül, hogy figyelembe venné a futási környezetet alkotó egyedi csomagokat. Minden hiányzó elem közvetlenül az alkalmazással együtt van csomagolva. Egy tároló létrehozásakor a futásidejű tartalom /usr partícióként, a köteg pedig az /app könyvtárba kerül.

A futtatókörnyezet- és alkalmazástárolók OSTree technológiával épülnek fel, amelyben a lemezkép atomszerűen frissül egy Git-szerű tárolóból, ami lehetővé teszi a verziókezelési módszerek alkalmazását a terjesztési összetevőkre (például gyorsan visszaállíthatja a rendszert egy előző állapot). Az RPM-csomagokat egy speciális rpm-ostree réteg segítségével fordítják le az OSTree tárolóba. A munkakörnyezeten belül a csomagok külön telepítése és frissítése nem támogatott, a rendszer nem az egyes komponensek szintjén, hanem egészében frissül, atomosan megváltoztatva az állapotát. Eszközöket biztosít a frissítések fokozatos alkalmazásához, így nincs szükség a kép teljes cseréjére minden frissítésnél.

Az előállított izolált környezet teljesen független a használt disztribúciótól, és a csomag megfelelő beállításai mellett nem fér hozzá a felhasználó vagy a fő rendszer fájljaihoz és folyamataihoz, nem fér hozzá közvetlenül a berendezéshez, kivéve a DRI-n keresztüli kimenetet, és a hálózati alrendszer hívásait. A grafikus kimenet és a bemenet szervezése a Wayland protokoll használatával vagy az X11 socket továbbítással valósul meg. A külső környezettel való interakció a DBus üzenetküldő rendszeren és egy speciális Portals API-n alapul.

Az elkülönítéshez a Bubblewrap réteget és a hagyományos Linux konténervirtualizációs technológiákat használjuk, amelyek a cgroupok, névterek, Seccomp és SELinux használatán alapulnak. A PulseAudio hangkibocsátásra szolgál. Ebben az esetben az elkülönítés letiltható, amelyet számos népszerű csomag fejlesztői használnak, hogy teljes hozzáférést kapjanak a fájlrendszerhez és a rendszer összes eszközéhez. Például a GIMP, a VSCodium, a PyCharm, az Octave, az Inkscape, az Audacity és a VLC korlátozott elkülönítési móddal rendelkezik, amely teljes hozzáférést biztosít a kezdőkönyvtárhoz. Ha a kezdőkönyvtárhoz hozzáféréssel rendelkező csomagokat feltörik, a „sandboxed” címke ellenére a csomagleírásban a támadónak csak a ~/.bashrc fájlt kell módosítania a kód végrehajtásához. Külön kérdés a csomagok változásainak ellenőrzése és a csomagkészítőkbe vetett bizalom, amelyek gyakran nem kapcsolódnak a fő projekthez vagy disztribúciókhoz.

Forrás: opennet.ru

Hozzászólás