o nouă ramură stabilă a instrumentului , care oferă un sistem pentru construirea pachetelor autonome, independente de distribuții Linux specifice și care rulează într-un container special, izolând aplicația de restul sistemului. Suportul pentru executarea 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.8:
- Implementarea instalării în modul P2P a fost simplificată (permițând descărcarea aplicațiilor și seturilor de runtime prin noduri intermediare sau unități de stocare pentru sistemele fără conexiune la rețea). Suportul pentru instalarea prin gazde intermediare în rețeaua locală a fost întrerupt. Descărcarea automată a repository-urilor (sideload) aflate pe unități USB locale este dezactivată implicit. Pentru a activa repository-urile locale intermediare, trebuie configurat un repository prin crearea unui link simbolic din /var/lib/flatpak/sideload-repos sau
/run/flatpak/sideload-repos. Изменение позволило упростить внутреннюю реализацию режима P2P и повысить его эффективность. - Adăugat un unit optiona systemd pentru detectarea automată a repository-urilor suplimentare pe unitățile externe USB conectate.
- Pentru aplicațiile care au acces la sistemul de fișiere, s-a asigurat redirecționarea directorului /lib din mediu gazdă în /run/host/lib.
- Au fost adăugate noi permisiuni de acces la FS — «host-etc» și «host-os», permițând accesul la directoarele sistemului /etc și /usr.
- Pentru a genera un cod de analiză mai eficient al fișierelor GVariant din ostreee a fost utilizat .
- În criptarea de construcție configure a fost oferită posibilitatea construirii fără
libsystemd; - A fost asigurat montajul socket-urilor Journal în modul numai pentru citire.
- În document-export a fost adăugată suportul pentru exportarea directoarelor.
- Accesul direct la dispozitivele audio ALSA pentru aplicațiile care au acces la Pulseaudio a fost permis.
- În API-ul a fost adăugat semnalul «install-authenticator», care poate fi folosit de clienți pentru a instala autentificatorii necesari efectuării tranzacției.
- Utilizarea datelor despre fusul orar pe baza /etc/localtime din sistemul gazdă a fost asigurată, soluționând problemele legate de fusurile orare în unele aplicații.
- Instalarea fișierului env.d din gdm a fost întreruptă, deoarece generatoarele systemd se descurcă mai bine cu această sarcină.
- În utilitarul create-usb, exportul commit-urilor parțiale este activat implicit.
- A fost asigurată livrarea fișierului sysusers.d pentru a crea, prin systemd, utilizatorii necesari.
- Comenzile „flatpak remote-add” și „flatpak modify” au fost completate cu opțiunea „—[no-]follow-redirect” pentru a interzice/permite redirecționarea către un alt depozit.
- În sistem
a fost adăugat API-ul Spawn pentru obținerea identificatorului real al procesului (PID) aplicației lansate. - Toate depozitele OCI (Open Container Initiative) au fost migrate la utilizarea autentificatorului flatpak-oci-authenticator.
- Comenzile „flatpak remote-info” și „flatpak update” au fost completate cu opțiunea „—commit=” pentru a specifica o anumită versiune a depozitelor OCI.
- A fost adăugat suport inițial pentru actualizările delta pentru depozitele OCI.
- A fost adăugată comanda „flatpak upgrade”, care este un alias pentru comanda „flatpak update”.
- Au fost implementate scripturi de completare a intrării pentru shell-ul fish.
Reamintim că dezvoltatorilor de aplicații Flatpak le oferă posibilitatea de a simplifica distribuția programelor lor, care nu sunt incluse în depozitele standard ale distribuțiilor, prin utilizarea 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, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio etc.
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 organizate sub formă de runtime-uri modulare. Principalul punct de diferență dintre Flatpak și Snap este că Snap utilizează componentele mediului sistemului principal și izolația bazată pe filtrarea apelurilor de sistem, în timp ce Flatpak creează un container separat de sistem și operează cu seturi mari de runtime-uri, oferind ca dependențe nu pachete, ci medii sistemice modulare (de exemplu, toate bibliotecile necesare pentru a rula aplicațiile 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 , care permite actualizarea atomică a imaginii dintr-un depozit similar Git, permițând aplicarea metodelor de control al versiunii la componentele distribuției (de exemplu, se poate reveni rapid sistemul la o stare anterioară). Pachetele RPM sunt traduse în depozitul OSTree cu ajutorul unei straturi speciale . 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 de bază, nu poate accesa direct hardware-ul, cu excepția ieșirii prin DRI și a subsistemului de rețea. Ieșirea grafică și organizarea intrării 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
