Izdanje sustava samodostatnih paketa Flatpak 1.14.0

Objavljena je nova stabilna grana alata Flatpak 1.14 koja pruža sustav za izgradnju samostalnih paketa koji nisu vezani uz specifične distribucije Linuxa i rade u posebnom spremniku koji izolira aplikaciju od ostatka sustava. Podrška za pokretanje Flatpak paketa dostupna je za Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux i Ubuntu. Flatpak paketi uključeni su u Fedora repozitorij i podržani su od strane izvornog GNOME upravitelja aplikacija.

Ključne inovacije u grani Flatpak 1.14:

  • Moguće je stvoriti direktorij za datoteke u stanju (.local/state) i postaviti varijablu okruženja XDG_STATE_HOME koja pokazuje na ovaj direktorij.
  • Dodane su uvjetne provjere oblika "have-kernel-module-name" za utvrđivanje prisutnosti modula kernela (univerzalni analog prethodno predložene provjere have-intel-gpu, umjesto koje se izraz "have-kernel-module-i915" ” sada se može koristiti).
  • Implementirana je naredba “flatpak document-unexport —doc-id=…”.
  • Omogućen je izvoz Appstream metapodataka za korištenje u glavnom okruženju.
  • Dodana pravila za dovršetak naredbi flatpak za školjku Fish
  • Dopušten je mrežni pristup uslugama X11 i PulseAudio (ako su dodane odgovarajuće postavke).
  • Glavna grana u Git repozitoriju preimenovana je iz "master" u "main", budući da se riječ "master" nedavno smatrala politički nekorektnom.
  • Skripte za pokretanje sada se ponovno pišu ako se aplikacija preimenuje.
  • Dodane su opcije "--include-sdk" i "--include-debug" instalacijskoj naredbi za instalaciju SDK i debuginfo datoteka.
  • Dodana je podrška za parametar “DeploySideloadCollectionID” datotekama flatpakref i flatpakrepo. Kada je postavljeno, ID zbirke bit će postavljen prilikom dodavanja udaljenog repozitorija, a ne nakon učitavanja metapodataka.
  • Dopuštena je izrada ugniježđenih pješčanih okruženja za rukovatelje u sesijama s zasebnim nazivima MPRIS (Specifikacija daljinskog sučelja medijskih igrača).
  • Pomoćni programi naredbenog retka sada pružaju informacije o korištenju zastarjelih proširenja vremena izvođenja.
  • Naredba za deinstalaciju implementira zahtjev za potvrdu prije uklanjanja vremena izvođenja ili proširenja za izvođenje koja su još u upotrebi.
  • Dodana je podrška za opciju “--socket=gpg-agent” naredbama poput “flatpak run”.
  • U libostreeu je popravljena ranjivost koja potencijalno može omogućiti korisniku brisanje proizvoljnih datoteka na sustavu kroz manipulaciju rukovatelja flatpak-system-helper (slanje zahtjeva za brisanje s posebno formatiranim nazivom grane). Problem se pojavljuje samo u starijim verzijama Flatpak-a i libostree-a izdanim prije 2018. (< 0.10.2) i ne utječe na trenutna izdanja.

Podsjetimo, Flatpak omogućuje programerima aplikacija da pojednostave distribuciju svojih programa koji nisu uključeni u standardna repozitorija distribucije pripremom jednog univerzalnog spremnika bez stvaranja zasebnih sklopova za svaku distribuciju. Za korisnike koji brinu o sigurnosti, Flatpak vam omogućuje pokretanje upitne aplikacije u spremniku, pružajući pristup samo mrežnim funkcijama i korisničkim datotekama povezanim s aplikacijom. Za korisnike zainteresirane za nove proizvode, Flatpak omogućuje instaliranje najnovijih testnih i stabilnih izdanja aplikacija bez potrebe za izmjenama sustava. Na primjer, paketi Flatpak izrađeni su za LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio itd.

Kako bi se smanjila veličina paketa, uključuje samo ovisnosti specifične za aplikaciju, a osnovni sustav i grafičke biblioteke (GTK, Qt, GNOME i KDE biblioteke, itd.) dizajnirane su kao plug-in standardna runtime okruženja. Ključna razlika između Flatpaka i Snapa je u tome što Snap koristi komponente glavnog okruženja sustava i izolaciju na temelju filtriranja poziva sustava, dok Flatpak stvara spremnik odvojen od sustava i radi s velikim skupovima vremena izvođenja, ne pružajući pakete kao ovisnosti, već standardne okruženja sustava (na primjer, sve biblioteke potrebne za rad GNOME ili KDE programa).

Uz standardno okruženje sustava (runtime), instalirano putem posebnog repozitorija, isporučuju se dodatne ovisnosti (bundle) potrebne za rad aplikacije. Ukupno, runtime i bundle čine punjenje spremnika, unatoč činjenici da je runtime instaliran odvojeno i povezan s nekoliko spremnika odjednom, što vam omogućuje da izbjegnete dupliciranje sistemskih datoteka zajedničkih spremnicima. Jedan sustav može imati instalirano nekoliko različitih runtimea (GNOME, KDE) ili nekoliko verzija istog runtimea (GNOME 3.40, GNOME 3.42). Spremnik s aplikacijom kao ovisnošću koristi vezanje samo na određeno vrijeme izvođenja, ne uzimajući u obzir pojedinačne pakete koji čine vrijeme izvođenja. Svi elementi koji nedostaju pakirani su izravno s aplikacijom. Kada se formira spremnik, sadržaj vremena izvođenja se montira kao /usr particija, a paket se montira u /app direktorij.

Spremnici vremena izvođenja i aplikacije izgrađeni su korištenjem OSTree tehnologije, u kojoj se slika atomski ažurira iz repozitorija sličnog Gitu, što omogućuje primjenu metoda kontrole verzija na komponente distribucije (na primjer, možete brzo vratiti sustav na prethodno stanje). RPM paketi se prevode u OSTree repozitorij pomoću posebnog rpm-ostree sloja. Odvojena instalacija i ažuriranje paketa unutar radnog okruženja nije podržano, sustav se ažurira ne na razini pojedinačnih komponenti, već kao cjelina, atomski mijenjajući svoje stanje. Pruža alate za postupnu primjenu ažuriranja, eliminirajući potrebu za potpunom zamjenom slike sa svakim ažuriranjem.

Generirano izolirano okruženje potpuno je neovisno o korištenoj distribuciji i, uz odgovarajuće postavke paketa, nema pristup datotekama i procesima korisnika ili glavnog sustava, te ne može izravno pristupiti opremi, s izuzetkom izlaza putem DRI-ja i poziva mrežnom podsustavu. Organizacija grafičkog izlaza i ulaza implementirana je pomoću Wayland protokola ili putem X11 socket forwardinga. Interakcija s vanjskim okruženjem temelji se na DBus sustavu poruka i posebnom Portals API-ju.

Za izolaciju se koristi sloj Bubblewrap i tradicionalne tehnologije virtualizacije Linux spremnika, temeljene na korištenju cgroups, namespaces, Seccomp i SELinux. PulseAudio se koristi za izlaz zvuka. U tom slučaju može se onemogućiti izolacija, koju koriste programeri mnogih popularnih paketa kako bi dobili puni pristup datotečnom sustavu i svim uređajima u sustavu. Na primjer, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity i VLC dolaze s ograničenim načinom izolacije koji ostavlja puni pristup početnom direktoriju. Ako su paketi s pristupom početnom direktoriju ugroženi, unatoč prisutnosti oznake "sandboxed" u opisu paketa, napadač samo treba promijeniti datoteku ~/.bashrc da bi izvršio svoj kod. Posebno pitanje je kontrola promjena paketa i povjerenje u graditelje paketa, koji često nisu povezani s glavnim projektom ili distribucijama.

Izvor: opennet.ru

Dodajte komentar