Itsenäisen Flatpak 1.14.0 -pakettijärjestelmän julkaisu

Flatpak 1.14 -työkalupakin uusi vakaa haara on julkaistu, joka tarjoaa järjestelmän itsenäisten pakettien rakentamiseen, joita ei ole sidottu tiettyihin Linux-jakeluihin ja jotka suoritetaan erityisessä säiliössä, joka eristää sovelluksen muusta järjestelmästä. Tuki Flatpak-pakettien suorittamiselle on saatavilla Arch Linuxille, CentOS:lle, Debianille, Fedoralle, Gentoolle, Mageialle, Linux Mintille, Alt Linuxille ja Ubuntulle. Flatpak-paketit sisältyvät Fedora-tietovarastoon ja niitä tukee alkuperäinen GNOME-sovellushallinta.

Tärkeimmät innovaatiot Flatpak 1.14 -haarassa:

  • On mahdollista luoda hakemisto tilassa (.local/state) oleville tiedostoille ja asettaa XDG_STATE_HOME-ympäristömuuttuja osoittamaan tähän hakemistoon.
  • Lisätty ehdolliset tarkistukset muodossa "have-kernel-module-name" ydinmoduulien olemassaolon määrittämiseksi (yleinen analogi aiemmin ehdotetulle have-intel-gpu -tarkistukselle, jonka sijaan ilmaisu "have-kernel-module-i915" " voidaan nyt käyttää).
  • Komento “flatpak document-unexport —doc-id=…” on otettu käyttöön.
  • Appstream-metatietojen vienti pääympäristössä käytettäväksi tarjotaan.
  • Lisätty Flatpak-komennon suorittamissäännöt Fish-kuoreen
  • Verkkoyhteys X11- ja PulseAudio-palveluihin on sallittu (jos sopivat asetukset on lisätty).
  • Git-arkiston päähaara on nimetty uudelleen "masterista" "pääksi", koska sanaa "master" on äskettäin pidetty poliittisesti epäkorrektina.
  • Käynnistysskriptit kirjoitetaan nyt uudelleen, jos sovellus nimetään uudelleen.
  • Lisätty "--include-sdk" ja "--include-debug" vaihtoehdot asennuskomentoon SDK- ja debuginfo-tiedostojen asentamiseksi.
  • Lisätty tuki "DeploySideloadCollectionID"-parametrille flatpakref- ja flatpakrepo-tiedostoille. Kun se on asetettu, kokoelmatunnus asetetaan lisättäessä etävarastoa, ei metatietojen lataamisen jälkeen.
  • Sallii sisäkkäisten hiekkalaatikkoympäristöjen luomisen käsittelijöille istunnoissa erillisillä MPRIS (Media Player Remote Interfacing Specification) -nimillä.
  • Komentoriviohjelmat tarjoavat nyt tietoja vanhentuneiden ajonaikaisten laajennusten käytöstä.
  • Uninstall-komento toteuttaa vahvistuspyynnön ennen kuin ajonaikaiset tai edelleen käytössä olevat ajonaikaiset laajennukset poistetaan.
  • Lisätty tuki "--socket=gpg-agent"-vaihtoehdolle komennoille, kuten "flatpak run".
  • Libostreessa on korjattu haavoittuvuus, joka saattaa antaa käyttäjän poistaa mielivaltaisia ​​tiedostoja järjestelmästä manipuloimalla flatpak-system-helper-käsittelijää (lähettää poistopyynnön erityisesti muotoillulla haaran nimellä). Ongelma ilmenee vain vanhemmissa Flatpakin ja libostreen versioissa, jotka on julkaistu ennen vuotta 2018 (< 0.10.2), eikä se vaikuta nykyisiin julkaisuihin.

Muistutetaan, että Flatpakin avulla sovelluskehittäjät voivat yksinkertaistaa ohjelmiensa jakelua, jotka eivät sisälly vakiojakeluvarastoihin, valmistamalla yhden yleisen kontin luomatta erillisiä kokoonpanoja jokaiselle jakelulle. Turvatietoisille käyttäjille Flatpak mahdollistaa kyseenalaisen sovelluksen ajamisen säiliössä, jolloin pääset vain sovellukseen liittyviin verkkotoimintoihin ja käyttäjätiedostoihin. Uusista tuotteista kiinnostuneille käyttäjille Flatpak antaa sinun asentaa uusimmat testi- ja vakaat versiot sovelluksista ilman, että järjestelmään tarvitsee tehdä muutoksia. Esimerkiksi Flatpak-paketit on rakennettu LibreOffice-, Midori-, GIMP-, Inkscape-, Kdenlive-, Steam-, 0 AD-, Visual Studio Code-, VLC-, Slack-, Skype-, Telegram Desktop-, Android Studio- jne.

Paketin koon pienentämiseksi se sisältää vain sovelluskohtaisia ​​riippuvuuksia, ja perusjärjestelmä- ja grafiikkakirjastot (GTK, Qt, GNOME- ja KDE-kirjastot jne.) on suunniteltu plug-in-standardin ajonaikaisiksi ympäristöiksi. Keskeinen ero Flatpakin ja Snapin välillä on se, että Snap käyttää pääjärjestelmäympäristön komponentteja ja suodatusjärjestelmäkutsuihin perustuvaa eristystä, kun taas Flatpak luo järjestelmästä erillisen säilön ja toimii suurilla ajonaikaisilla sarjoilla tarjoamalla paketteja ei riippuvuuksina, vaan vakiona. yksi järjestelmäympäristö (esimerkiksi kaikki GNOME- tai KDE-ohjelmien toimintaan tarvittavat kirjastot).

Erityisen tietovaraston kautta asennetun vakiojärjestelmäympäristön (runtime) lisäksi toimitetaan sovelluksen toimintaan tarvittavat lisäriippuvuudet (paketti). Kaiken kaikkiaan ajonaika ja nippu muodostavat säiliön täytön huolimatta siitä, että ajonaika asennetaan erikseen ja sidotaan useampaan säiliöön kerralla, jolloin vältytään konteille yhteisten järjestelmätiedostojen päällekkäisyydestä. Yhdessä järjestelmässä voi olla asennettuna useita eri ajonaikoja (GNOME, KDE) tai useita versioita samasta ajonajasta (GNOME 3.40, GNOME 3.42). Säilö, jonka riippuvuutena on sovellus, käyttää sidontaa vain tiettyyn suoritusaikaan ottamatta huomioon yksittäisiä paketteja, jotka muodostavat suoritusajan. Kaikki puuttuvat elementit pakataan suoraan sovelluksen mukana. Kun säilö muodostetaan, ajonaikainen sisältö liitetään /usr-osiona ja paketti liitetään /app-hakemistoon.

Ajonaikaiset ja sovellussäiliöt on rakennettu OSTree-tekniikalla, jossa kuva päivitetään atomisesti Git-tyyppisestä arkistosta, mikä mahdollistaa versionhallintamenetelmien soveltamisen jakelukomponentteihin (esim. voit palauttaa järjestelmän nopeasti takaisin edellinen tila). RPM-paketit käännetään OSTree-tietovarastoon käyttämällä erityistä rpm-ostree-kerrosta. Erillistä asennusta ja pakettien päivitystä työympäristön sisällä ei tueta, järjestelmää ei päivitetä yksittäisten komponenttien tasolla, vaan kokonaisuutena, joka muuttaa tilaansa atomaalisesti. Tarjoaa työkaluja päivitysten asentamiseen asteittain, mikä eliminoi tarpeen korvata kuva kokonaan jokaisella päivityksellä.

Luotu eristetty ympäristö on täysin riippumaton käytetystä jakelusta, eikä sillä ole oikeilla pakettiasetuksilla pääsyä käyttäjän tai pääjärjestelmän tiedostoihin ja prosesseihin, eikä se voi päästä suoraan laitteistoon, lukuun ottamatta DRI:n kautta tapahtuvaa tulostusta ja puheluita. verkkoalijärjestelmään. Grafiikkalähtö ja tulon organisointi toteutetaan käyttämällä Wayland-protokollaa tai X11 socket forwarding -protokollaa. Vuorovaikutus ulkoisen ympäristön kanssa perustuu DBus-viestijärjestelmään ja erityiseen Portals API:hen.

Eristämiseen käytetään Bubblewrap-kerrosta ja perinteisiä Linux-konttivirtualisointitekniikoita, jotka perustuvat cgroups-, nimiavaruuksien, Seccompin ja SELinuxin käyttöön. PulseAudioa käytetään äänen lähettämiseen. Tässä tapauksessa eristys voidaan poistaa käytöstä, jota monien suosittujen pakettien kehittäjät käyttävät saadakseen täyden pääsyn tiedostojärjestelmään ja kaikkiin järjestelmän laitteisiin. Esimerkiksi GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity ja VLC sisältävät rajoitetun eristystilan, joka jättää täyden pääsyn kotihakemistoon. Jos paketit, joilla on pääsy kotihakemistoon, vaarantuvat, vaikka paketin kuvauksessa on "hiekkalaatikko"-tunniste, hyökkääjän tarvitsee vain muuttaa ~/.bashrc-tiedosto suorittaakseen koodinsa. Erillinen asia on pakettien muutosten hallinta ja luottamus pakettien rakentajiin, jotka eivät usein liity pääprojektiin tai jakeluihin.

Lähde: opennet.ru

Lisää kommentti