Lancement du système de paquets autonomes Flatpak 1.14.0

Une nouvelle branche stable de l'outil Flatpak 1.14 a été publiée, offrant un système pour la création de paquets autonomes, non liés à des distributions Linux spécifiques et exécutés dans un conteneur spécial qui isole l'application du reste du système. Le support de l'exécution des paquets Flatpak est assuré pour Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux et Ubuntu. Les paquets Flatpak sont inclus dans le dépôt Fedora et pris en charge par le gestionnaire d'applications GNOME par défaut.

Les principales nouveautés de la branche Flatpak 1.14 :

  • Création d'un répertoire pour les fichiers d'état (.local/state) et définition de la variable d'environnement XDG_STATE_HOME pointant vers ce répertoire.
  • Ajout de vérifications conditionnelles de type «have-kernel-module-nom» pour déterminer la présence de modules du noyau (un équivalent universel de la vérification précédente have-intel-gpu, où l'on peut utiliser maintenant l'expression «have-kernel-module-i915»).
  • Commande «flatpak document-unexport —doc-id=…» mise en œuvre.
  • Export des métadonnées Appstream prévu pour utilisation dans l'environnement principal.
  • Règles d'autocomplétion ajoutées pour les commandes flatpak dans le shell Fish.
  • Accès réseau autorisé aux services X11 et PulseAudio (avec l'ajout des paramètres appropriés).
  • La branche principale du dépôt Git a été renommée de «master» à «main», car le terme «master» est considéré comme politiquement incorrect ces derniers temps.
  • Réécriture des scripts de démarrage en cas de renommage de l'application.
  • Options «—include-sdk» et «—include-debug» ajoutées à la commande install pour l'installation du SDK et des fichiers de debuginfo.
  • Support du paramètre «DeploySideloadCollectionID» ajouté aux fichiers flatpakref et flatpakrepo, lors de l'installation, l'identifiant de la collection sera défini lors de l'ajout du dépôt distant, et non après le téléchargement des métadonnées.
  • Création de sandbox imbriqués autorisée pour les gestionnaires dans des sessions avec des noms MPRIS distincts (Media Player Remote Interfacing Specification).
  • Les outils de ligne de commande affichent des informations sur l'utilisation des extensions runtime obsolètes.
  • Dans la commande uninstall, une demande de confirmation est mise en œuvre avant la suppression des runtime ou des extensions runtime encore utilisées.
  • Support de l'option «—socket=gpg-agent» ajoutée aux commandes telles que «flatpak run».
  • Dans libostree, une vulnérabilité a été corrigée, permettant potentiellement à un utilisateur de supprimer des fichiers arbitraires sur le système en manipulant le gestionnaire flatpak-system-helper (en envoyant une demande de suppression avec un nom de branche spécialement formaté). Ce problème ne se manifeste que dans les anciennes versions de Flatpak et libostree publiées avant 2018 (< 0.10.2) et n'affecte pas les versions actuelles.

Rappelons que Flatpak permet aux développeurs d'applications de simplifier la diffusion de leurs programmes, qui ne font pas partie des dépôts standard des distributions, en préparant un conteneur universel sans avoir à créer des compilations séparées pour chaque distribution. Pour les utilisateurs soucieux de sécurité, Flatpak permet d'exécuter une application suspecte dans un conteneur, en ne fournissant que l'accès aux fonctions réseau et aux fichiers de l'utilisateur liés à l'application. Pour les utilisateurs intéressés par les nouveautés, Flatpak permet d'installer les dernières versions test et stables des applications sans avoir besoin de modifier le système. Par exemple, les paquets Flatpak sont disponibles pour LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, etc.

Pour réduire la taille du paquet, il comprend uniquement les dépendances spécifiques à l'application, tandis que les bibliothèques système et graphiques de base (GTK, Qt, bibliothèques GNOME et KDE, etc.) sont présentées sous forme d'environnements d'exécution modulaires. La principale différence entre Flatpak et Snap est que Snap utilise des composants de l'environnement du système principal et une isolation basée sur la filtration des appels système, tandis que Flatpak crée un conteneur séparé du système et fonctionne avec de grands ensembles d'exécution, fournissant non pas des paquets comme dépendances mais des environnements système modulaires (par exemple, toutes les bibliothèques nécessaires au fonctionnement des programmes GNOME ou KDE).

En plus de l'environnement système standard (runtime) installé via un dépôt spécial, des dépendances supplémentaires (bundle) requises pour le fonctionnement de l'application sont fournies. Ensemble, le runtime et le bundle forment le contenu du conteneur, le runtime étant installé séparément et lié à plusieurs conteneurs, ce qui permet d'éviter la duplication des fichiers système communs aux conteneurs. Plusieurs runtimes différents (GNOME, KDE) ou plusieurs versions d'un même runtime (GNOME 3.40, GNOME 3.42) peuvent être installés sur un seul système. Le conteneur de l'application, en tant que dépendance, utilise la liaison uniquement à un runtime spécifique, sans tenir compte des paquets distincts qui composent le runtime. Tous les éléments manquants sont empaquetés directement avec l'application. Lors de la création du conteneur, le contenu du runtime est monté comme la partition /usr, tandis que le bundle est monté dans le répertoire /app.

Le contenu des runtimes et des conteneurs d'applications est formé à l'aide de la technologie OSTree, où l'image est mise à jour de manière atomique à partir d'un dépôt similaire à Git, permettant d'appliquer des méthodes de contrôle de version aux composants de la distribution (par exemple, il est possible de revenir rapidement à l'état antérieur du système). Les paquets RPM sont traduits dans le dépôt OSTree à l'aide d'une couche intermédiaire appelée rpm-ostree. L'installation et la mise à jour séparées des paquets à l'intérieur de l'environnement de travail ne sont pas prises en charge, le système étant mis à jour non pas au niveau des composants individuels, mais dans son ensemble, changent atomiquement son état. Des moyens sont fournis pour appliquer des mises à jour incrémentales, éliminant le besoin de remplacer complètement l'image à chaque mise à jour.

L'environnement isolé ainsi formé est complètement indépendant de la distribution utilisée et, avec les paramètres de paquet appropriés, n'a pas accès aux fichiers et processus de l'utilisateur ou du système principal, ne peut pas accéder directement au matériel, sauf pour le rendu via DRI et les appels au sous-système réseau. La sortie graphique et l'organisation de l'entrée sont réalisées à l'aide du protocole Wayland ou via le transfert de sockets X11. L'interaction avec l'environnement externe est fondée sur un système de messagerie DBus et une API spéciale Portals.

Pour l'isolation, une couche Bubblewrap est utilisée avec des technologies traditionnelles de virtualisation de conteneurs Linux reposant sur l'utilisation de cgroups, d'espaces de noms (namespaces), de Seccomp et de SELinux. Pour la sortie audio, PulseAudio est utilisé. L'isolation peut être désactivée, ce dont se servent les développeurs de nombreux paquets populaires pour obtenir un accès complet au système de fichiers et à tous les appareils. Par exemple, des paquets comme GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity et VLC sont livrés avec un mode d'isolation limité qui donne un accès complet au répertoire personnel. En cas de compromission des paquets avec accès au répertoire personnel, malgré la présence dans la description du paquet de l'étiquette « sandboxed », l'attaquant peut exécuter son code simplement en modifiant le fichier ~/ .bashrc. Un autre sujet est le contrôle des modifications apportées aux paquets et la confiance dans les assembleurs de paquets, qui ne sont souvent pas liés au projet principal ou aux distributions.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster