Llançament del sistema de paquets autònoms Flatpak 1.14.0

S'ha publicat una nova branca estable del conjunt d'eines Flatpak 1.14, que proporciona un sistema per construir paquets autònoms que no estan vinculats a distribucions de Linux específiques i que s'executen en un contenidor especial que aïlla l'aplicació de la resta del sistema. Es proporciona suport per executar paquets Flatpak per a Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux i Ubuntu. Els paquets Flatpak s'inclouen al dipòsit de Fedora i són compatibles amb el gestor d'aplicacions nadiu del GNOME.

Innovacions clau a la branca Flatpak 1.14:

  • És possible crear un directori per als fitxers en estat (.local/state) i establir la variable d'entorn XDG_STATE_HOME que apunti a aquest directori.
  • S'han afegit comprovacions condicionals de la forma "have-kernel-module-name" per determinar la presència de mòduls del nucli (un anàleg universal de la comprovació have-intel-gpu proposada anteriorment, en lloc de la qual l'expressió "have-kernel-module-i915 ” ara es pot utilitzar).
  • S'ha implementat l'ordre "flatpak document-unexport —doc-id=...".
  • Es proporciona l'exportació de metadades d'Appstream per utilitzar-les a l'entorn principal.
  • S'han afegit regles de finalització d'ordres flatpak per a la closca de peix
  • Es permet l'accés a la xarxa als serveis X11 i PulseAudio (si s'afegeixen els paràmetres adequats).
  • La branca principal del repositori Git s'ha canviat de nom de "mestre" a "principal", ja que la paraula "mestre" recentment s'ha considerat políticament incorrecta.
  • Els scripts d'inici ara es tornen a escriure si es canvia el nom de l'aplicació.
  • S'han afegit opcions "--include-sdk" i "--include-debug" a l'ordre d'instal·lació per instal·lar l'SDK i els fitxers debuginfo.
  • S'ha afegit compatibilitat amb el paràmetre "DeploySideloadCollectionID" als fitxers flatpakref i flatpakrepo. Quan s'estableixi, l'identificador de la col·lecció s'establirà en afegir un dipòsit remot i no després de carregar les metadades.
  • S'ha permès la creació d'entorns sandbox imbricats per a gestors en sessions amb noms separats MPRIS (Media Player Remote Interfacing Specification).
  • Les utilitats de la línia d'ordres ara proporcionen informació sobre l'ús d'extensions de temps d'execució obsoletes.
  • L'ordre de desinstal·lació implementa una sol·licitud de confirmació abans d'eliminar les extensions de temps d'execució o d'execució que encara estan en ús.
  • S'ha afegit suport per a l'opció "--socket=gpg-agent" a ordres com "flatpak run".
  • S'ha corregit una vulnerabilitat a libostree que podria permetre a un usuari suprimir fitxers arbitraris del sistema mitjançant la manipulació del controlador flatpak-system-helper (enviant una sol·licitud d'eliminació amb un nom de branca amb un format especial). El problema només apareix a les versions anteriors de Flatpak i libostree publicades abans del 2018 (< 0.10.2) i no afecta les versions actuals.

Recordem que Flatpak permet als desenvolupadors d'aplicacions simplificar la distribució dels seus programes que no estan inclosos als repositoris de distribució estàndard preparant un contenidor universal sense crear conjunts separats per a cada distribució. Per als usuaris conscients de la seguretat, Flatpak us permet executar una aplicació qüestionable en un contenidor, proporcionant accés només a les funcions de xarxa i als fitxers d'usuari associats a l'aplicació. Per als usuaris interessats en nous productes, Flatpak us permet instal·lar les darreres versions de proves i versions estables d'aplicacions sense necessitat de fer canvis al sistema. Per exemple, els paquets Flatpak es creen per a LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, etc.

Per reduir la mida del paquet, només inclou dependències específiques de l'aplicació, i les biblioteques bàsiques del sistema i de gràfics (bibliotecaries GTK, Qt, GNOME i KDE, etc.) estan dissenyades com a entorns d'execució estàndard de connectors. La diferència clau entre Flatpak i Snap és que Snap utilitza els components de l'entorn del sistema principal i l'aïllament basat en el filtratge de les trucades del sistema, mentre que Flatpak crea un contenidor separat del sistema i funciona amb grans conjunts de temps d'execució, proporcionant no paquets com a dependències, sinó estàndard. els entorns del sistema (per exemple, totes les biblioteques necessàries per al funcionament dels programes GNOME o KDE).

A més de l'entorn del sistema estàndard (temps d'execució), instal·lat a través d'un dipòsit especial, es proporcionen dependències addicionals (paquet) necessàries per al funcionament de l'aplicació. En total, el temps d'execució i el paquet formen l'ompliment del contenidor, malgrat que el temps d'execució s'instal·la per separat i lliga a diversos contenidors alhora, la qual cosa permet evitar la duplicació dels fitxers del sistema comuns als contenidors. Un sistema pot tenir instal·lats diversos temps d'execució diferents (GNOME, KDE) o diverses versions del mateix temps d'execució (GNOME 3.40, GNOME 3.42). Un contenidor amb una aplicació com a dependència utilitza una vinculació només a un temps d'execució específic, sense tenir en compte els paquets individuals que componen el temps d'execució. Tots els elements que falten s'empaqueten directament amb l'aplicació. Quan es forma un contenidor, el contingut del temps d'execució es munta com a partició /usr i el paquet es munta al directori /app.

El temps d'execució i els contenidors d'aplicacions es creen utilitzant la tecnologia OSTree, en la qual la imatge s'actualitza atòmicament des d'un dipòsit semblant a Git, que permet aplicar mètodes de control de versions als components de distribució (per exemple, podeu tornar ràpidament al sistema a un estat anterior). Els paquets RPM es tradueixen al repositori OSTree mitjançant una capa especial rpm-ostree. No s'admet la instal·lació i actualització de paquets per separat dins de l'entorn de treball; el sistema s'actualitza no a nivell de components individuals, sinó en conjunt, canviant el seu estat atòmicament. Proporciona eines per aplicar actualitzacions de manera incremental, eliminant la necessitat de substituir completament la imatge amb cada actualització.

L'entorn aïllat generat és completament independent de la distribució utilitzada i, amb la configuració adequada del paquet, no té accés als fitxers i processos de l'usuari o del sistema principal, no pot accedir directament a l'equip, a excepció de la sortida via DRI, i trucades al subsistema de xarxa. La sortida gràfica i l'organització d'entrada s'implementen mitjançant el protocol Wayland o mitjançant el reenviament del sòcol X11. La interacció amb l'entorn extern es basa en el sistema de missatgeria DBus i una API especial de Portals.

Per aïllar-se, s'utilitzen la capa Bubblewrap i les tecnologies tradicionals de virtualització de contenidors Linux, basades en l'ús de cgroups, espais de noms, Seccomp i SELinux. PulseAudio s'utilitza per emetre so. En aquest cas, l'aïllament es pot desactivar, que utilitzen els desenvolupadors de molts paquets populars per obtenir accés complet al sistema de fitxers i a tots els dispositius del sistema. Per exemple, GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity i VLC inclouen un mode d'aïllament limitat que deixa accés complet al directori d'inici. Si els paquets amb accés al directori d'inici estan compromesos, malgrat la presència de l'etiqueta "sandbox" a la descripció del paquet, l'atacant només necessita canviar el fitxer ~/.bashrc per executar el seu codi. Una qüestió a part és el control dels canvis als paquets i la confiança en els creadors de paquets, que sovint no estan associats amb el projecte o distribucions principals.

Font: opennet.ru

Afegeix comentari