Bonne nouvelle lundi,% username%. Récemment, une branche stable de la boîte à outils Flatpak 1.10 a été publiée . Il est conçu pour créer des packages autonomes qui ne sont pas liés à des distributions Linux spécifiques et s'exécutent dans un conteneur spécial qui isole l'application du système.
Les Flatpacks sont garantis pour fonctionner pour Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux et Ubuntu. Ils font également partie du référentiel Fedora et sont pris en charge par le logiciel de gestion d'applications GNOME. Sous la coupe - en savoir plus sur le nouveau produit et ses capacités.
Qu'est-ce que Flatpak?
Cette boîte à outils permet aux développeurs de simplifier la distribution de leurs propres programmes qui ne sont pas inclus dans les référentiels de distribution standard. Comment cela est-il mis en œuvre? Un conteneur universel est en cours de préparation sans former d'assemblages séparés pour chaque kit de distribution.
La boîte à outils fournit également un haut niveau de sécurité des informations, permettant à une application douteuse de s'exécuter dans un conteneur isolé. Dans ce cas, l'accès n'est accordé qu'aux fonctions réseau et aux fichiers utilisateurs associés à l'application. De plus, avec Flatpak, vous pouvez installer les dernières versions des applications sans avoir à modifier le système. Ainsi, des packages Flatpak sont en cours de préparation pour LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio et des dizaines d'autres applications.
Pour réduire la taille du package, les développeurs ont inclus uniquement les dépendances spécifiques à l'application. Mais toutes les bibliothèques principales sont conçues comme des applications d'exécution de plug-ins. Flatpack présente une différence essentielle avec Snap: ce dernier utilise des composants d'environnement système et une isolation basée sur le filtrage des appels système. Mais Flatpack crée un conteneur distinct du système, fonctionnant avec de grands ensembles d'exécution, de sorte que non pas les packages sont fournis en tant que dépendances, mais des environnements système typiques. Il peut s'agir de toutes les bibliothèques dont les programmes GNOME / KDE ont besoin pour s'exécuter.
Comme pour l'environnement système typique, en plus de l'exécution, des dépendances supplémentaires sont installées qui sont nécessaires pour que l'application fonctionne correctement. L'environnement système principal et ces dépendances forment le cœur du conteneur. En conséquence, le runtime est installé séparément et se lie à plusieurs conteneurs à la fois. Cela permet de se passer de la duplication des fichiers système communs aux conteneurs.
Plusieurs runtime différents ou plusieurs versions du même runtime peuvent être installés sur le même système. Le conteneur avec l'application en tant que dépendance utilise la liaison à un runtime spécifique sans prendre en compte les packages individuels qui composent le runtime. Les éléments manquants sont fournis avec l'application. Lorsque le conteneur est formé, le contenu d'exécution est monté en tant que section / usr et le bundle est monté dans le répertoire / app.
Le bourrage des conteneurs d'exécution et d'application est formé à l'aide de la technologie OSTree. Dans ce cas, l'image est mise à jour à partir d'un référentiel de type Git. Ceci est fait afin que vous puissiez appliquer des méthodes de contrôle de version aux composants de distribution. Par exemple, un utilisateur peut restaurer le système à un état antérieur. Il convient de souligner que les packages RPM sont traduits dans le référentiel OSTree à l'aide d'une couche spéciale rpm-ostree.
L'installation et la mise à jour séparées des packages dans l'environnement de travail ne sont pas prises en charge, de sorte que le système est mis à jour dans son ensemble et non au niveau des composants individuels. Il existe également des outils pour l'application incrémentielle des mises à jour, ce qui élimine le besoin de remplacer complètement l'image à chaque mise à jour.
L'environnement sandbox est indépendant de la distribution que vous utilisez. Ainsi, avec les paramètres de package appropriés, l'environnement n'a pas accès aux fichiers et processus de l'utilisateur ou du système hôte. De plus, l'environnement ne peut pas accéder directement à l'équipement et au sous-système réseau. Le protocole Wayland et le transfert de socket X11 sont utilisés pour la sortie et l'entrée graphiques. L'interaction avec l'environnement externe est construite sur la base du système de messagerie DBus et de l'API spéciale Portals.
Pour l'isolation, la couche Bubblewrap et les technologies de virtualisation de conteneur standard sont utilisées. Ils sont basés sur des groupes de contrôle, des espaces de noms, Seccomp et SELinux. Le son est émis à l'aide de PulseAudio. L'isolation peut être désactivée si nécessaire.
Quoi de neuf?
- , , . OSTree. , . , . , , , 100 . , Flatpack . , 6.6 (1.8 ), x86-64 — 2.7 (554 ). 20 .
- «flatpak pin» runtime. runtime, , .
- runtime ( ).
- , , "/org/gnome/sound-juicer", «org.gnome.SoundJuicer».
- os-release .
- tcsh.
- , .
- .
- API, flatpak_installation_list_pinned_refs, flatpak_transaction_set_disable_auto_pin, flatpak_transaction_set_include_unused_uninstall_ops, flatpak_transaction_operation_get_subpaths, flatpak_transaction_operation_get_requires_authentication.
- GCC 11.
- PulseAudio .
- , . , - , .
- root .