o nouă ramură stabilă a instrumentului , care oferă un sistem pentru construirea de pachete autonome, nelegate de distribuții specifice Linux și care rulează într-un container special, izolând aplicația de restul sistemului. Suportul pentru rularea pachetelor Flatpak este asigurat pentru Arch Linux, , Debian, Fedora, Gentoo, Mageia, Linux Mint și Ubuntu. Pachetele Flatpak sunt incluse în depozitul Fedora și sunt suportate în aplicația de gestionare GNOME.
Principalele în ramura Flatpak 1.6:
- În a fost adăugată metoda CreateUpdateMonitor, care permite aplicațiilor să urmărească apariția actualizărilor și să ceară instalarea actualizărilor apărute.
Pentru a interzice aplicației să își instaleze actualizările autonom, se poate folosi comanda „flatpak permission-set flatpak updates $APPID no” (dacă se specifică „ask” în loc de „no”, se va afișa un dialog pentru confirmarea actualizării de fiecare dată); - Pentru a simplifica crearea handler-elor, a fost propusă biblioteca
libportal, care permite gestionarea evenimentelor fără utilizarea directă a API Portal și interpretarea semnalelor provenite prin D-Bus.
Libportal oferă straturi simple, care funcționează asincron pentru majoritatea „«; - A fost adăugat un nou atribut „—socket=cups” pentru a permite accesul direct la serverul de imprimare CUPS;
- Protocul și API-ul pentru procesarea autentificării au fost modificate. A fost adăugat un autentificator pentru OCI (Open Container Initiative). A fost implementată suport pentru instalarea automată a autentificatorilor dintr-un depozit extern flatpak. În FlatpakTransaction a fost adăugat un handler callback pentru utilizarea autentificării prin numele de utilizator și parolă, similar cu metoda de autentificare HTTP basic;
- A fost adăugată suport pentru aplicații securizate și sisteme care necesită autentificare la descărcare;
- Stratul utilizat pentru izolare bubblewrap a fost actualizat la versiunea ;
- A fost adăugată suport opțional pentru control parental prin utilizarea bibliotecii , care permite restricționarea accesului la anumite tipuri de conținut;
- Extensiile sunt acum instalate înainte de aplicație, ceea ce permite obținerea unei aplicații funcționale imediat după finalizarea instalării;
- Manipulările fișierelor temporare au fost reproiectate, ceea ce a îmbunătățit funcționarea în condiții de spațiu de stocare liber insuficient;
- Pentru a executa comanda „” nu mai este necesară utilizarea sudo;
- În portaluri a fost adăugată posibilitatea de a lansa medii izolate înnăscute (sub-sandbox) pentru procesele fiice;
- Au fost adăugate noi comenzi „flatpak permission-set” și „permission-remove” pentru gestionarea instalării permisiunilor;
- A fost adăugată opțiunea „flatpak install —or-update”, care efectuează actualizarea, dacă aplicația este deja instalată;
- A fost adăugată comanda „flatpak mask” pentru blocarea versiunii și interzicerea instalării actualizărilor;
- Pentru imaginile în format OCI (Open Container Initiative) a fost adăugată suport pentru asocieri de etichete, generarea istoricului modificărilor din imagine și includerea tipurilor MIME docker, pe lângă tipurile MIME OCI;
- În setări a fost adăugat cheia default-languages pentru a defini lista limbilor utilizate, în plus față de lista sistemică.
Să reamintim că dezvoltatorii de aplicații Flatpak au posibilitatea de a simplifica distribuția programelor lor, care nu fac parte din repozitoarele standard ale distribuțiilor, prin unui singur container universale fără a crea build-uri separate pentru fiecare distribuție. Utilizatorii preocupați de securitate pot rula aplicațiile de încredere în container, oferindu-le acces doar la funcționalitățile de rețea și fișierele utilizatorului asociate aplicației. Utilizatorii interesați de noutăți pot instala cele mai recente versiuni de teste și stabile ale aplicațiilor fără a necesita modificări în sistem. De exemplu, în prezent pachetele Flatpak sunt deja pentru LibreOffice, Firefox, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio și altele.
Pentru a reduce dimensiunea pachetului, acesta include doar dependențele specifice aplicației, iar bibliotecile sistemice și grafice de bază (Gtk+, Qt, biblioteci GNOME și KDE etc.) sunt prezentate sub formă de medii de rulare tipice. Diferența cheie între Flatpak și Snap constă în faptul că Snap utilizează componente ale mediului de bază al sistemului și izolație bazată pe filtrarea apelurilor de sistem, în timp ce Flatpak creează un container separat de sistem și operează cu seturi mari de runtime, oferind ca dependențe nu pachete, ci medii sistemice tipice (de exemplu, toate bibliotecile necesare pentru funcționarea programelor GNOME sau KDE).
Pe lângă mediul sistemic tipic (runtime), care este instalat printr-un , se livrează dependențe suplimentare (bundle) necesare pentru funcționarea aplicației. În total, runtime și bundle formează conținutul containerului, având în vedere că runtime-ul se instalează separat și se leagă de mai multe containere, ceea ce permite evitarea duplicării fișierelor de sistem comune pentru containere. Într-un sistem pot fi instalate mai multe runtime-uri diferite (GNOME, KDE) sau mai multe versiuni ale aceluiași runtime (GNOME 3.26, GNOME 3.28). Containerul cu aplicația ca dependență folosește legătura doar la un anumit runtime, fără a lua în considerare pachetele individuale din care este format runtime-ul. Toate elementele lipsă sunt împachetate împreună cu aplicația. Atunci când se formează containerul, conținutul runtime-ului este montat ca partiție /usr, iar bundle-ul este montat în directorul /app.
Conținutul runtime-ului și al containerelor de aplicații este format folosind tehnologia , în care imaginea este actualizată atomic dintr-un depozit asemănător cu Git, permițând aplicarea metodelor de control al versiunilor asupra componentelor distribuției (de exemplu, se poate reveni rapid la o stare anterioară a sistemului). Pachetele RPM sunt transmise în depozitul OSTree prin intermediul unui strat special . Instalarea și actualizarea separată a pachetelor în interiorul mediului de lucru nu sunt acceptate, sistemul se actualizează nu la nivelul componentelor individuale, ci în întregime, schimbând atomic starea sa. Se oferă instrumente pentru aplicarea incrementală a actualizărilor, evitând necesitatea înlocuirii complete a imaginii la fiecare actualizare.
Mediul izolat creat este complet independent de distribuția utilizată și, cu setările corecte ale pachetului, nu are acces la fișierele și procesele utilizatorului sau ale sistemului principal, nu poate accesa direct hardware-ul, cu excepția ieșirii prin DRI și a subsistemului de rețea. Ieșirea grafică și organizarea inputului se realizează prin intermediul protocolului Wayland sau prin redirecționarea socket-ului X11. Interacțiunea cu mediul extern se bazează pe un sistem de schimb de mesaje DBus și un API special Portals. Pentru izolare stratul și tehnologiile tradiționale de virtualizare a containerelor bazate pe utilizarea cgroups, spațiilor de nume (namespaces), Seccomp și SELinux. Pentru ieșirea sunetului se folosește PulseAudio.
Sursa: opennet.ro
