Izdan je sustav samodostatnih paketa Flatpak 1.18.0.

Nakon godinu i pol dana razvoja objavljena je nova stabilna verzija alata Flatpak 1.18, koja pruža sustav za izradu samostalnih paketa, neovisnih o određenim distribucijama Linuxa i izvršavanih u posebnom kontejneru koji izolira aplikaciju od ostatka sustava. Podrška za izvođenje Flatpak paketa osigurana je za Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux i Ubuntu. Flatpak paketi su uključeni u repozitorij Fedore i podržani su u standardnim programima za upravljanje aplikacijama GNOME i KDE.

Ključne novine u verziji Flatpak 1.18:

  • Implementirana je podrška za uvjetne dozvole (conditional permission), omogućujući provjeru određene dostupnosti u sustavu ili runtime prilikom zahtjeva za dozvolu. Na primjer, umjesto '—device=all' za pristup ulaznim uređajima, može se zatražiti dozvola '—device-if=all:!has-input-device —device=input', koja omogućuje pristup samo ulaznim uređajima ili vraća pristup svim uređajima ako selektivno davanje pristupa nije podržano u runtimeu. Slično, moguće je zatražiti pristup USB uređajima ('has-usb-device' i 'has-usb-portal') ili zajedničkim podsustavima.
  • Omogućen je pristup uređaju /dev/ntsync za pozivanje
    modula jezgre NTSYNC, koji implementira skup primitiva za sinkronizaciju korištenih u jezgrama Windows NT i omogućava značajno poboljšanje performansi Windows igara pokrenutih putem Wine-a.
  • Za Intel Xe GPU uključena je podrška za API VA-API radi hardverskog ubrzanja dekodiranja videa.
  • Implementirana je mogućnost pristupa uređaju /dev/kfd (Kernel Fusion Driver) koristeći dozvole koje se daju za DRI uređaje. Kfd driver implementira sučelje za izravno izvođenje proračuna na AMD GPU-ima iz aplikacija koje koriste AMD ROCm, HIP i OpenCL.
  • Dodana je podrška za korištenje opcija naredbenog retka za prosljeđivanje pristupa direktorijima izoliranim aplikacijama.
  • Dodana je podrška za direktorij 'preinstall.d', koji definira popis unaprijed instaliranih Flatpak aplikacija (za uključivanje Flatpak aplikacija u operacijski sustav).
  • Omogućena je izravna instalacija aplikacija iz OCI formata kontejnerskih slika, koje se mogu preuzeti iz vlastitih OCI repozitorija i lokalnih arhiva.
  • U naredbu 'flatpak install —from' dodana je podrška za URI 'flatpak+https://'.
  • U komandni "flatpak run" dodana je opcija "--clear-env" za čišćenje varijabli okruženja prije pokretanja aplikacije.
  • Omogućeno je izvođenje korijenske mape host okruženja u izolirano okruženje aplikacije s pristupom kroz mapu /run/host/root.
  • Dodana je opcija za ispis rezultata izvršenja komandi u JSON formatu.
  • Pojačana je izolacija gradbenog okruženja — komanda "flatpak build" sada po defaultu ne omogućuje pristup hostu.
  • Dodana je komanda "reinstall" za ponovnu instalaciju zavisnosti (bundle).
  • D-Bus postavke po defaultu premještene su iz mape /etc u /usr.
  • Skraćeno vrijeme pokretanja prilikom korištenja komandnog interpreter-a fish.
  • U libflatpak dodana je funkcija za dobivanje informacija o vremenu kreiranja konfiguracije, što omogućava aplikacijama, poput GNOME Softvera, da utvrde da li podaci koje su keširale zahtijevaju ažuriranje.
  • Uklonjena je opcija gradnje http_backend, umjesto libsoup2 za preuzimanje putem HTTP/HTTPS korištena je biblioteka libcurl.
  • Po defaultu uključena je upotreba escape sekvenci za označavanje napretka izvršenja operacije.
  • Dozvoljeno je prenošenje prava pristupa uređajima u ugnježdena sandbox okruženja, stvorena putem Flatpak portala.
  • Za aplikacije koje se isporučuju u obliku OCI slika, implementiran je mehanizam "extra-data", na primjer, koji omogućava reprodukciju video h.265 u Flatpak paketima Fedora Linux-a.
  • Dodana je podrška za kompresiju zavisnosti (OCI bundle) korištenjem algoritma zstd, koji efikasnije komprimira podatke. Po defaultu se i dalje koristi gzip za kompresiju, što osigurava maksimalnu kompatibilnost.

Flatpak pojednostavljuje distribuciju aplikacija koje nisu uključene u standardne repozitorije distribucija, omogućujući pripremu jednog univerzalnog kontejnera, čime se programerima olakšava izbor i distribucija aplikacija bez potrebe za kreiranjem posebnih verzija za svaku distribuciju. Korisnicima koji brinu o sigurnosti, Flatpak omogućuje izvođenje sumnjivih aplikacija unutar kontejnera, pružajući selektivan pristup samo potrebnim mrežnim funkcijama i korisničkim datotekama. Korisnicima koji su zainteresirani za nove aplikacije, Flatpak omogućuje instalaciju najnovijih beta i stabilnih verzija bez potrebe za izmjenom sustava. Na primjer, Flatpak paketi razvijaju se 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.

U jednom sustavu može biti instalirano više različitih 'runtime-a' (GNOME, KDE) ili više verzija jednog 'runtime-a' (GNOME 50, GNOME 49). Kontejner s aplikacijom kao ovisnošću koristi vezu samo za određeni 'runtime', ne uzimajući u obzir pojedinačne pakete koji čine odabrani 'runtime'. Svi nedostajući elementi pakiraju se izravno zajedno s aplikacijom. Prilikom izrade kontejnera, sadržaj 'runtime-a' montira se kao dio /usr, a 'bundle' se 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 ne ovisi o korištenoj distribuciji i, uz pravilno podešavanje paketa, nema pristup korisničkim datotekama i procesima ili osnovnom sustavu, niti može izravno komunicirati s hardverom osim putem DRI. Izlaz grafike i organizacija unosa realizirani su putem protokola Wayland ili preko prosljeđivanja X11 socketa. Interakcija s vanjskim okružjem ostvaruje se putem sustava razmjene poruka DBus i specijaliziranog API-ja Portals.

Za izolaciju se koristi sloj Bubblewrap i tradicionalne linux tehnologije kontejnerske virtualizacije, temeljen na korištenju cgroups, prostora imena (namespaces), Seccomp-a i SELinux-a. Prilikom izrade paketa, izolacija može biti isključena, što programeri nekih paketa koriste za dobivanje potpunog pristupa datotečnom sustavu i svim uređajima u sustavu.

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