Izdanje Flatpak 1.14.0 samostalnog paketnog sistema

Objavljena je nova stabilna grana Flatpak 1.14 alata, koja pruža sistem za pravljenje samostalnih paketa koji nisu vezani za specifične Linux distribucije i koji se pokreću u posebnom kontejneru koji izoluje aplikaciju od ostatka sistema. Podrška za pokretanje Flatpak paketa je obezbeđena za Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux i Ubuntu. Flatpak paketi su uključeni u Fedora spremište i podržani su od strane izvornog upravitelja GNOME aplikacija.

Ključne inovacije u grani Flatpak 1.14:

  • Moguće je kreirati direktorij za datoteke u stanju (.local/state) i postaviti varijablu okruženja XDG_STATE_HOME koja ukazuje na ovaj direktorij.
  • Dodane su uslovne provjere oblika “imam-kernel-module-name” za određivanje prisutnosti modula kernela (univerzalni analog prethodno predložene provere have-intel-gpu, umjesto koje se pojavljuje izraz “have-kernel-module-i915 ” sada se može koristiti).
  • Naredba “flatpak document-unexport —doc-id=…” je implementirana.
  • Omogućen je izvoz Appstream metapodataka za korištenje u glavnom okruženju.
  • Dodata pravila za završetak komande flatpak za ljusku Fish
  • Mrežni pristup uslugama X11 i PulseAudio je dozvoljen (ako se dodaju odgovarajuća podešavanja).
  • Glavna grana u Git repozitorijumu je preimenovana iz "master" u "main", pošto se reč "master" nedavno smatrala politički nekorektnom.
  • Skripte za pokretanje se sada ponovo pišu ako se aplikacija preimenuje.
  • Dodane su opcije "--include-sdk" i "--include-debug" naredbi za instalaciju za instaliranje SDK i debuginfo datoteka.
  • Dodata podrška za parametar “DeploySideloadCollectionID” za flatpakref i flatpakrepo datoteke. Kada je postavljen, ID kolekcije će biti postavljen prilikom dodavanja udaljenog spremišta, a ne nakon učitavanja metapodataka.
  • Dozvoljeno kreiranje okruženja ugniježđenih sandbox okruženja za rukovaoce u sesijama sa zasebnim nazivima MPRIS (Specifikacija za daljinsko sučeljavanje medija plejera).
  • Uslužni programi komandne linije sada pružaju informacije o korištenju zastarjelih ekstenzija vremena izvršavanja.
  • Naredba deinstalacije implementira zahtjev za potvrdu prije uklanjanja ekstenzija vremena izvođenja ili runtimea koji su još uvijek u upotrebi.
  • Dodata podrška za opciju “--socket=gpg-agent” za komande poput “flatpak run”.
  • Popravljena je ranjivost u libostree-u koja bi potencijalno mogla omogućiti korisniku da izbriše proizvoljne datoteke na sistemu kroz manipulaciju rukovaocem flatpak-system-helper (slanje zahtjeva za brisanje sa posebno formatiranim imenom grane). Problem se pojavljuje samo u starijim verzijama Flatpaka i libostreea objavljenim prije 2018. (< 0.10.2) i ne utječe na trenutna izdanja.

Podsjetimo da Flatpak omogućava programerima aplikacija da pojednostave distribuciju svojih programa koji nisu uključeni u standardna distribucijska spremišta pripremajući jedan univerzalni kontejner bez kreiranja zasebnih sklopova za svaku distribuciju. Za korisnike koji su svjesni sigurnosti, Flatpak vam omogućava da pokrenete upitnu aplikaciju u kontejneru, dajući pristup samo mrežnim funkcijama i korisničkim datotekama povezanim s aplikacijom. Za korisnike zainteresovane za nove proizvode, Flatpak omogućava instaliranje najnovijih testnih i stabilnih izdanja aplikacija bez potrebe za izmenama u sistemu. Na primjer, Flatpak paketi su napravljeni za LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, itd.

Da bi se smanjila veličina paketa, uključuje samo zavisnosti specifične za aplikaciju, a osnovne sistemske i grafičke biblioteke (GTK, Qt, GNOME i KDE biblioteke, itd.) su dizajnirane kao plug-in standardna okruženja za izvršavanje. Ključna razlika između Flatpaka i Snapa je u tome što Snap koristi komponente glavnog sistemskog okruženja i izolaciju zasnovanu na filtriranju sistemskih poziva, dok Flatpak kreira kontejner odvojen od sistema i radi sa velikim runtime setovima, pružajući ne pakete kao zavisnosti, već standardne one sistemske sredine (na primjer, sve biblioteke potrebne za rad GNOME ili KDE programa).

Pored standardnog sistemskog okruženja (runtime), instaliranog preko posebnog spremišta, isporučuju se i dodatne zavisnosti (bundle) potrebne za rad aplikacije. Ukupno vrijeme izvođenja i bundle čine punjenje kontejnera, uprkos činjenici da je vrijeme izvođenja instalirano odvojeno i vezano za nekoliko kontejnera odjednom, što vam omogućava da izbjegnete dupliciranje sistemskih datoteka zajedničkih za kontejnere. Jedan sistem može imati instalirano nekoliko različitih runtimea (GNOME, KDE) ili nekoliko verzija istog vremena izvršavanja (GNOME 3.40, GNOME 3.42). Kontejner sa aplikacijom kao zavisnošću koristi vezivanje samo za određeno vreme izvođenja, bez uzimanja u obzir pojedinačnih paketa koji čine vreme izvođenja. Svi elementi koji nedostaju se pakuju direktno uz aplikaciju. Kada se formira kontejner, sadržaj vremena izvođenja se montira kao /usr particija, a bundle se montira u /app direktorijum.

Kontejneri za vrijeme izvođenja i aplikacije izgrađeni su korištenjem OSTree tehnologije, u kojoj se slika atomski ažurira iz Git spremišta, što omogućava primjenu metoda kontrole verzija na komponente distribucije (na primjer, možete brzo vratiti sistem na prethodno stanje). RPM paketi se prevode u OSTree repozitorij koristeći poseban rpm-ostree sloj. Nije podržana odvojena instalacija i ažuriranje paketa unutar radnog okruženja, sistem se ažurira ne na nivou pojedinačnih komponenti, već u cjelini, atomski mijenjajući svoje stanje. Pruža alate za postepenu primjenu ažuriranja, eliminirajući potrebu za potpunom zamjenom slike sa svakim ažuriranjem.

Generirano izolirano okruženje je potpuno neovisno o korištenoj distribuciji i, uz odgovarajuće postavke paketa, nema pristup datotekama i procesima korisnika ili glavnog sistema, ne može direktno pristupiti opremi, osim izlaza preko DRI, i pozive u mrežni podsistem. Organizacija grafičkog izlaza i ulaza implementirana je korištenjem Wayland protokola ili putem prosljeđivanja X11 socketa. Interakcija sa eksternim okruženjem zasniva se na DBus sistemu za razmenu poruka i posebnom Portals API-ju.

Za izolaciju se koriste Bubblewrap sloj i tradicionalne Linux tehnologije virtuelizacije kontejnera, zasnovane na korišćenju cgroups, imenskih prostora, Seccomp i SELinux. PulseAudio se koristi za izlaz zvuka. U ovom slučaju, izolacija se može onemogućiti, što koriste programeri mnogih popularnih paketa kako bi dobili puni pristup sistemu datoteka i svim uređajima u sistemu. Na primjer, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity i VLC dolaze s ograničenim načinom izolacije koji ostavlja potpuni pristup početnom direktoriju. Ako su paketi s pristupom matičnom direktoriju kompromitovani, uprkos prisutnosti oznake “sandboxed” u opisu paketa, napadač treba samo promijeniti ~/.bashrc datoteku 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