Avaldati uus stabiilne Flatpak 1.14 tööriistade haru, mis pakub sĂŒsteemi iseseisvate pakettide ehitamiseks, mis ei ole seotud konkreetsete Linuxi jaotustega ning runnivad spetsiaalses konteineris, isolerides rakenduse sĂŒsteemist. Flatpak paketid on toetatud Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux ja Ubuntu puhul. Flatpak paketid on lisatud Fedora repositooriumisse ja neid toetab GNOME'i enamike rakenduste haldamise programm.
Peamised uuendused Flatpak 1.14 harus:
- On tagatud katalooge loomine failide jaoks (.local/state) ning keskkonnamuutuja XDG_STATE_HOME, mis viitab sellele kataloogile.
- Lisatud tingimuslikud kontrollid "have-kernel-module-nimi" tuvastamiseks, kas on olemas kernelimoodulid (universaalne analoog varem pakutud kontrollile have-intel-gpu, mille asemel saab nĂŒĂŒd kasutada vĂ€ljendit "have-kernel-module-i915").
- Tehtud kĂ€sk «flatpak document-unexport âdoc-id=âŠÂ».
- Tagatud Appstreami metainfo eksport peamise keskkonna kasutamiseks.
- Lisatud flatpaki kÀsurea autokomplekteerimise reeglid Fish shellile.
- Lubatud on vĂ”rguĂŒhenduse ligipÀÀs X11 ja PulseAudio teenustele (sobivate seadistuste lisamise korral).
- Peamine haru Git repositooriumis on ĂŒmber nimetatud «master»-st «main»-iks, kuna sĂ”na «master» on viimastel aegadel peetud poliitiliselt ebasobivaks.
- Tagatud on kĂ€ivituskriptide ĂŒlekirjutamine, kui rakenduse nime muudetakse.
- KĂ€sku install lisatud valik «âinclude-sdk» ja «âinclude-debug» SDK ja debuginfo failide installimiseks.
- Flatpakref ja flatpakrepo failidesse on lisatud toetust parameetrile «DeploySideloadCollectionID», mille korral kollektiivi identifikaator seatakse kaugrepository lisamisel, mitte pÀrast metainformatsiooni allalaadimist.
- Lubatud on pesa-ĂŒmbrike loomine töötlejatele seanssides, millel on eraldi MPRIS (Media Player Remote Interfacing Specification) nimed.
- KÀsurea utiliitides on tagatud teabe vÀljund vananenud runtime-laienduste kasutamise kohta.
- Uninstall kÀsus on rakendatud kinnituspalve runtime vÔi runtime-laienduste eemaldamiseks, mis on endiselt kasutuses.
- KĂ€skudele nagu «flatpak run» on lisatud toetust valikule «âsocket=gpg-agent».
- Libostree's vulnerability has been fixed, which could potentially allow a user to delete arbitrary files in the system through manipulation of the flatpak-system-helper handler (by sending a deletion request with a specially formatted branch name). The issue only affects older versions of Flatpak and libostree released prior to 2018 (< 0.10.2), and does not impact current releases.
We remind that Flatpak provides application developers with a simplified way to distribute their programs that are not included in the official repositories of distributions by preparing a single universal container without the need to create separate builds for each distribution. For users concerned about security, Flatpak allows them to run potentially questionable applications in a container, providing access only to network functions and user files related to the application. For users interested in novelties, Flatpak allows them to install the latest testing and stable releases of applications without needing to modify their system. For example, Flatpak packages are available for LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, etc.
To reduce package size, it includes only application-specific dependencies, while basic system and graphical libraries (GTK, Qt, GNOME and KDE libraries, etc.) are packaged as plug-in standard runtime environments. The key difference between Flatpak and Snap is that Snap utilizes components from the host environment and isolation based on filtering system calls, while Flatpak creates a container separate from the system and operates with large runtime sets, providing not packages as dependencies but standardized system environments (for example, all libraries needed for running GNOME or KDE applications).
Lisaks tĂŒĂŒpilisele sĂŒsteemikeskkonnale (runtime), mis paigaldatakse spetsiaalsete hoiuste kaudu, tarnitakse ka tĂ€iendavaid sĂ”ltuvusi (bundle), mis on vajalikud rakenduse toimimiseks. Kokku moodustavad runtime ja bundle konteineri sisu, kusjuures runtime paigaldatakse eraldi ja sidub korraga mitu konteinerit, mis vĂ”imaldab vĂ€ltida ĂŒldiste sĂŒsteemifailide dubleerimist konteinerite vahel. Ăhes sĂŒsteemis vĂ”ib olla paigaldatud mitu erinevat runtime'i (GNOME, KDE) vĂ”i mitu versiooni ĂŒhest runtime'ist (GNOME 3.40, GNOME 3.42). Rakenduse konteiner, mis kasutab sĂ”ltuvust, seondub ainult konkreetse runtime'iga, arvestamata eraldi pakette, millest runtime koosneb. KĂ”ik puuduvad elemendid pakitakse otse koos rakendusega. Konteineri loomisel mountitakse runtime'i sisu nagu jaotis /usr, samas kui bundle mountitakse katalooge /app.
Runtime'i ja rakenduste konteinerite sisu vormitakse OSTree tehnoloogia abil, kus pilt vĂ€rskendatakse atomaarsetena Git-taolise hoidla kaudu, mis vĂ”imaldab rakendada versiooni kontrollimise meetodeid distributsiooni komponentide osas (nĂ€iteks on vĂ”imalik kiiresti tagasi pöörata sĂŒsteem varasemasse olekusse). RPM-paketid edastatakse OSTree hoidlasse spetsiaalse kihina rpm-ostree abil. Eraldi pakettide paigaldamine ja vĂ€rskendamine töökeskkonnas ei ole toetatud, sĂŒsteemi vĂ€rskendatakse mitte eraldi komponentide tasandil, vaid tervikuna, muutes oma olekut atomaarsetena. Pakutakse vahendeid, et rakendada inkrementaalseid vĂ€rskendusi, vabastades vajadusest iga vĂ€rskenduse korral tervet pilti asendada.
Kujundatud isoleeritud keskkond on tĂ€iesti sĂ”ltumatu kasutatavast distributsioonist ja korralike paketihÀÀlestustega ei ole tal juurdepÀÀsu kasutaja vĂ”i pĂ”hiskeemi failidele ja protsessidele, ei saa ta otse pöörduda riistvara poole, vĂ€lja arvatud vĂ€ljund DRI kaudu ja pöördumised vĂ”rgusĂŒsteemi. Graafika vĂ€ljund ja sisendi korraldamine on rakendatud lĂ€bi Waylandi protokolli vĂ”i X11 soketi edastamise kaudu. Ăhendus vĂ€liskeskkonnaga pĂ”hineb sĂ”numivahetussĂŒsteemil DBus ja spetsiaalsel API Portals.
Isolatsiooniks kasutatakse Bubblewrap'i ja traditsioonilisi Linuxi konteinerite virtualiseerimise tehnoloogiaid, mis pĂ”hinevad cgroups, nimede ruumide (namespaces), Seccomp'i ja SELinux'i kasutamisel. HÀÀle edastamiseks kasutatakse PulseAudio't. Samas vĂ”ib isolatsiooni deaktiveerida, mida kasutavad paljude populaarsete pakettide arendajad, et saada tĂ€isjuurdepÀÀs failisĂŒsteemile ja kĂ”ikidele seadmetele sĂŒsteemis. NĂ€iteks pakuvad GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ja VLC pakette, mille piiratud isolatsioonireĆŸiim jĂ€tab tĂ€ieliku juurdepÀÀsu kodukataloogile. Kui kodukatalooge juurdepÀÀsuga pakettidel esineb kompromiteerimine, piisab rĂŒndajal oma koodi tĂ€itmiseks faili ~\ .bashrc muutmisest, vaatamata sellele, et paketi kirjelduses on mĂ€rge âsandboxedâ. Eri kĂŒsimus on muudatuste jĂ€lgimise ja pakettide ehitajate usaldusvÀÀrsuse kontrollimine, kes sageli ei ole seotud pĂ”hiprojekti vĂ”i jaotustega.
Allikas: opennet.ru
