Objava sustava samostalnih paketa Flatpak 1.16.0

Nakon dvije i pol godine razvoja objavljena je nova stabilna verzija alata Flatpak 1.16, koja pruža sustav za izradu samostalnih paketa, neovisnih o određenim Linux distribucijama i koji se pokreću u posebnom kontejneru, koji izolira aplikaciju od ostatka sustava. Podrška za pokretanje Flatpak paketa omogućena je za Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux i Ubuntu. Flatpak paketi uključeni su u Fedora repozitorij i podržani su u unaprijed instaliranim programima za upravljanje aplikacijama GNOME i KDE.

Ključne novosti u verziji Flatpak 1.16:

  • Prešao je na korištenje sustava za izgradnju Meson. Podrška za izgradnju pomoću alata Autotools je prekinuta. Za izgradnju Flatpak-a sada je potrebno imati na sustavu Python, barem verziju 3.5.
  • Implementirana je mogućnost zajedničkog pristupa gssproxy socketu, koja omogućuje korištenje autentifikacije putem Kerberosa u aplikacijama koje se pokreću u sandbox izolaciji.
  • Pri stvaranju socket-a za Wayland korišteno je proširenje security-context, putem kojeg kompozitni server može identificirati i ograničiti aplikacije pokrenute u sandbox izolaciji. Dodana je opcija „—socket=inherit-wayland-socket“ za nasljeđivanje postojećeg socket-a za Wayland.
  • Nakon instalacije ili nadogradnje aplikacija osigurana je automatska obnova konfiguracije sesijske sabirnice D-Bus za preuzimanje novih D-Bus usluga koje izlažu aplikacije.
  • Distribucijama je omogućeno definiranje repozitorija s Flatpak paketima, koristeći direktorij „/usr/share/flatpak/remotes.d“, osim „/etc/flatpak/remotes.d“.
  • Obavljen je posao na razdvajanju velikih datoteka s izvor kodom na male module.
  • Dodana je opcija „—device=input“ za pristup uređajima za unos putem /dev/input.
  • Za izolaciju aplikacija korištena je nova verzija alata bubblewrap 0.11. U distribucijama koje sastavljaju Flatpak koristeći sustavni izvršni datoteku bwrap, potrebna je barem verzija bubblewrap 0.11. Ojačana je zaštita od stvaranja u sandbox okruženjima ugniježdenih prostora identifikacijskih oznaka korisnika (user namespace).
  • Olakšana je konfiguracija dodatnih jezika. Osigurano je utvrđivanje jezika na temelju informacija o korisnicima, koje izlaže DBus servis AccountsService.
  • Aplikacijama koje koriste ugniježdenu sandbox izolaciju, poput onih temeljenih na WebKit motoru, dopuštena je upotreba AT-SPI protokola za interakciju s čitačima ekrana. Dodana je opcija «flatpak run —a11y-own-name» za odabir sabirnice putem koje se pristupa sredstvima za osobe s invaliditetom.
  • Izvršavanjem naredbe «flatpak run -vv » omogućen je prikaz svih primjenjivih opcija sandbox izolacije.
  • Dodana je opcija «—device=usb», kao i parametri «—usb» i «—no-usb» za upravljanje pristupom aplikacije USB uređajima.
  • Dodana je podrška za KCompletion okvir, koji se koristi za automatsko dovršavanje pretraživačkih ključnih riječi u KDE-u.
  • Dodane su varijable okruženja «FLATPAK_DATA_DIR» i «FLATPAK_DOWNLOAD_TMPDIR» za prepisivanje direktorija podataka ( /usr/share/flatpak ) i privremenih datoteka za preuzimanje ( /var/tmp ).
  • Dodano je ispisivanje escape sekvenci za prikaz napretka izvršenja operacija u emulatorima terminala.

Podsjetimo da Flatpak pojednostavljuje distribuciju programa koji nisu uključeni u standardne repozitorije distribucija, pripremajući jedan univerzalni kontejner, oslobađajući programere od potrebe za oblikovanjem zasebnih građevina za svaku distribuciju. Korisnicima koji brinu o sigurnosti, Flatpak omogućava pokretanje sumnjivih aplikacija unutar kontejnera, pružajući selektivni pristup samo potrebnim mrežnim funkcijama i korisničkim datotekama. Korisnicima koji su zainteresirani za novitete, Flatpak omogućava instalaciju najnovijih testnih i stabilnih izdanja aplikacija bez potrebe za izmjenama u sustavu. Na primjer, Flatpak paketi se izrađuju za LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Telegram Desktop, Android Studio itd.

Kako bi se smanjila veličina, paket uključuje samo specifične ovisnosti potrebne za aplikaciju. Osnovne sistemske i grafičke biblioteke (GTK, Qt, biblioteke GNOME i KDE itd.) isporučuju se u obliku standardnih runtime okruženja. Ključna razlika između Flatpak i Snap je u tome što Snap koristi komponente okruženja glavnog sistema i izolaciju temeljenu na filtriranju sistemskih poziva, dok Flatpak stvara odvojeni kontejner od sistema i upravlja velikim runtime skupovima, pružajući kao ovisnosti ne pakete, već standardna sistemska okruženja (na primjer, sve biblioteke potrebne za rad GNOME ili KDE aplikacija).

Osim standardnog sistemskog okruženja (runtime), koje se instalira putem posebnog repozitorija, dostavljaju se i dodatne ovisnosti (bundle) potrebne za rad aplikacije. U zbroju, 'runtime' i 'bundle' čine sadržaj kontejnera, pri čemu se 'runtime' instalira odvojeno i povezuje odmah s nekoliko kontejnera, što omogućava izbjegavanje dupliciranja zajedničkih sistemskih datoteka za kontejnere.

Na jednom sistemu može biti instalirano više različitih 'runtime' (GNOME, KDE) ili više verzija jednog 'runtime' (GNOME 46, GNOME 47). Kontejner s aplikacijom kao ovisnošću koristi vezu samo s određenim 'runtime', bez uzimanja u obzir pojedinih paketa koji čine odabrani 'runtime'. Svi nedostajući elementi pakiraju se izravno zajedno s aplikacijom. Pri stvaranju kontejnera, sadržaj 'runtime' montira se kao particija /usr, dok se 'bundle' montira u direktorij /app.

Sadržaj 'runtime' i kontejnera aplikacija oblikuje se korištenjem tehnologije OSTree, pri čemu se slika atomarno ažurira iz Git-sličnog spremišta, omogućujući primjenu metoda kontroliranja verzija na komponentama distribucije (na primjer, sustav se može brzo vratiti na prethodno stanje). RPM paketi prenose se u OSTree repozitorij putem sloja rpm-ostree.

Selektivna instalacija i ažuriranje paketa unutar radnog okruženja nije podržana — sustav se ažurira ne na razini pojedinačnih komponenti, već u cjelini, atomarno mijenjajući svoje stanje. Dostupna su sredstva za inkrementalno primjenjivanje ažuriranja, oslobađajući od potrebe potpune zamjene slike pri svakom ažuriranju.

Izolirano okruženje se potpuno formira neovisno o korištenom distribucijskom sustavu, a uz pravilne postavke paketa nema pristup datotekama i procesima korisnika ili glavnog sustava, te ne može izravno pristupiti hardveru, osim putem DRI-a. Izhod grafike i organizacija unosa ostvaruju se preko Wayland protokola ili preko preusmjeravanja X11 soketa. Interakcija s vanjskim okruženjem se ostvaruje putem sustava za razmjenu poruka DBus i specijalnog API-a Portals.

Za izolaciju se koristi Bubblewrap sloj i tradicionalne Linux tehnologije kontejnerske virtualizacije, temeljeći se na korištenju cgroups, prostora imena (namespaces), Seccomp i SELinux. Za izdavanje zvuka koristi se PulseAudio ili PipeWire. Tijekom stvaranja paketa, izolacija može biti onemogućena, što koriste programeri mnogih popularnih paketa kako bi dobili potpuni pristup datotečnom sustavu i svim uređajima u sustavu.

Na primjer, paket GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity i VLC dolaze s ograničenim režimom izolacije koji ostavlja potpuni pristup korisničkom direktoriju. U slučaju kompromitacije paketa s pristupom korisničkom direktoriju, unatoč oznaci „sandboxed” u opisu paketa, napadaču je dovoljno da promijeni datoteku ~/bashrc da bi izvršio svoj kod. Pitanje je i kontrola nad promjenama u paketima i povjerenje u graditelje paketa koji često nisu povezani s glavnim projektima ili distribucijama.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster