Izid sistema samozadostnih paketov Flatpak 1.14.0

Objavljena je bila nova stabilna veja kompleta orodij Flatpak 1.14, ki zagotavlja sistem za gradnjo samostojnih paketov, ki niso vezani na določene distribucije Linuxa in se izvajajo v posebnem vsebniku, ki izolira aplikacijo od preostalega sistema. Podpora za izvajanje paketov Flatpak je na voljo za Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux in Ubuntu. Paketi Flatpak so vključeni v repozitorij Fedora in jih podpira izvorni upravitelj aplikacij GNOME.

Ključne novosti v veji Flatpak 1.14:

  • Možno je ustvariti imenik za datoteke v stanju (.local/state) in nastaviti spremenljivko okolja XDG_STATE_HOME, ki kaže na ta imenik.
  • Dodana pogojna preverjanja v obliki »have-kernel-module-name« za ugotavljanje prisotnosti modulov jedra (univerzalni analog predhodno predlaganega preverjanja have-intel-gpu, namesto katerega izraz »have-kernel-module-i915 ” zdaj lahko uporabite).
  • Implementiran je bil ukaz »flatpak document-unexport —doc-id=…«.
  • Zagotovljen je izvoz metapodatkov Appstream za uporabo v glavnem okolju.
  • Dodana pravila za dokončanje ukaza flatpak za ribjo lupino
  • Omrežni dostop do storitev X11 in PulseAudio je dovoljen (če so dodane ustrezne nastavitve).
  • Glavna veja v repozitoriju Git je bila preimenovana iz »master« v »main«, saj je beseda »master« nedavno veljala za politično nekorektno.
  • Zagonski skripti so zdaj prepisani, če se aplikacija preimenuje.
  • Dodani možnosti »--include-sdk« in »--include-debug« ukazu za namestitev za namestitev datotek SDK in debuginfo.
  • Dodana podpora za parameter »DeploySideloadCollectionID« datotekama flatpakref in flatpakrepo. Ko je nastavljen, bo ID zbirke nastavljen ob dodajanju oddaljenega repozitorija in ne po nalaganju metapodatkov.
  • Dovoljeno ustvarjanje ugnezdenih okolij peskovnika za obdelovalce v sejah z ločenimi imeni MPRIS (specifikacija oddaljenega vmesnika predvajalnika medijev).
  • Pripomočki ukazne vrstice zdaj zagotavljajo informacije o uporabi zastarelih razširitev izvajalnega okolja.
  • Ukaz uninstall implementira zahtevo za potrditev pred odstranitvijo izvajalnega okolja ali razširitev izvajalnega okolja, ki so še vedno v uporabi.
  • Dodana podpora za možnost »--socket=gpg-agent« za ukaze, kot je »flatpak run«.
  • V libostree je bila odpravljena ranljivost, ki bi potencialno lahko uporabniku omogočila brisanje poljubnih datotek v sistemu z manipulacijo upravljalnika flatpak-system-helper (pošiljanje zahteve za brisanje s posebej oblikovanim imenom veje). Težava se pojavi samo v starejših različicah Flatpak in libostree, izdanih pred letom 2018 (< 0.10.2), in ne vpliva na trenutne izdaje.

Naj vas spomnimo, da Flatpak omogoča razvijalcem aplikacij, da poenostavijo distribucijo svojih programov, ki niso vključeni v standardna distribucijska skladišča, tako da pripravijo en univerzalni vsebnik brez ustvarjanja ločenih sklopov za vsako distribucijo. Uporabnikom, ki se zavedajo varnosti, vam Flatpak omogoča zagon vprašljive aplikacije v vsebniku, ki omogoča dostop samo do omrežnih funkcij in uporabniških datotek, povezanih z aplikacijo. Za uporabnike, ki jih zanimajo novi izdelki, Flatpak omogoča namestitev najnovejših testnih in stabilnih izdaj aplikacij, ne da bi morali spreminjati sistem. Paketi Flatpak so na primer izdelani za LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio itd.

Da bi zmanjšali velikost paketa, vključuje samo odvisnosti, specifične za aplikacijo, osnovne sistemske in grafične knjižnice (GTK, Qt, knjižnice GNOME in KDE itd.) pa so oblikovane kot standardna izvajalna okolja z vtičniki. Ključna razlika med Flatpakom in Snapom je v tem, da Snap uporablja komponente glavnega sistemskega okolja in izolacijo, ki temelji na filtriranju sistemskih klicev, medtem ko Flatpak ustvari vsebnik, ločen od sistema, in deluje z velikimi nabori izvajalnega časa, pri čemer paketov ne zagotavlja kot odvisnosti, temveč standardne sistemska okolja (na primer vse knjižnice, potrebne za delovanje programov GNOME ali KDE).

Poleg standardnega sistemskega okolja (runtime), nameščenega prek posebnega repozitorija, so dobavljene dodatne odvisnosti (bundle), potrebne za delovanje aplikacije. Skupaj izvajalni čas in paket tvorita polnjenje vsebnika, kljub dejstvu, da je izvajalni čas nameščen ločeno in vezan na več vsebnikov hkrati, kar vam omogoča, da se izognete podvajanju sistemskih datotek, ki so skupne vsebnikom. En sistem ima lahko nameščenih več različnih izvajalnih okolij (GNOME, KDE) ali več različic istega izvajalnega okolja (GNOME 3.40, GNOME 3.42). Vsebnik z aplikacijo kot odvisnostjo uporablja vezavo samo na določeno izvajalno okolje, ne da bi upošteval posamezne pakete, ki sestavljajo izvajalno okolje. Vsi manjkajoči elementi so pakirani neposredno z aplikacijo. Ko se oblikuje vsebnik, se vsebina izvajalnega okolja vpne kot particija /usr, sveženj pa se vpne v imenik /app.

Vsebniki izvajalnega okolja in aplikacij so zgrajeni s tehnologijo OSTree, v kateri je slika atomsko posodobljena iz repozitorija, podobnega Gitu, kar omogoča uporabo metod nadzora različic za komponente distribucije (na primer, sistem lahko hitro vrnete nazaj na prejšnje stanje). Paketi RPM so prevedeni v repozitorij OSTree s posebnim slojem rpm-ostree. Ločeno nameščanje in posodabljanje paketov znotraj delovnega okolja ni podprto, sistem se ne posodablja na ravni posameznih komponent, ampak kot celota, pri čemer atomsko spreminja svoje stanje. Zagotavlja orodja za postopno uporabo posodobitev, pri čemer odpravlja potrebo po popolni zamenjavi slike z vsako posodobitvijo.

Generirano izolirano okolje je popolnoma neodvisno od uporabljene distribucije in ob pravilnih nastavitvah paketa nima dostopa do datotek in procesov uporabnika ali glavnega sistema, ne more neposredno dostopati do opreme, z izjemo izhoda preko DRI, in klice v omrežni podsistem. Organizacija grafičnih izhodov in vnosov se izvaja s protokolom Wayland ali prek posredovanja vtičnic X11. Interakcija z zunanjim okoljem temelji na sporočilnem sistemu DBus in posebnem Portals API.

Za izolacijo se uporabljajo sloj Bubblewrap in tradicionalne tehnologije virtualizacije vsebnikov Linux, ki temeljijo na uporabi cgroups, namespaces, Seccomp in SELinux. PulseAudio se uporablja za oddajanje zvoka. V tem primeru je mogoče onemogočiti izolacijo, ki jo razvijalci številnih priljubljenih paketov uporabljajo za popoln dostop do datotečnega sistema in vseh naprav v sistemu. Na primer, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity in VLC imajo omejen način izolacije, ki pušča popoln dostop do domačega imenika. Če so paketi z dostopom do domačega imenika ogroženi, kljub prisotnosti oznake »peskovnik« v opisu paketa, mora napadalec le spremeniti datoteko ~/.bashrc, da izvede svojo kodo. Posebno vprašanje je nadzor nad spremembami paketov in zaupanje v graditelje paketov, ki pogosto niso povezani z glavnim projektom ali distribucijami.

Vir: opennet.ru

Dodaj komentar