Maybaygiare.org

Blog Network

Snap (gestionnaire de paquets)

Snap StoreEdit

Le Snap Store permet aux développeurs de publier leurs applications directement auprès des utilisateurs. Avec les approches traditionnelles de gestion de paquets Linux comme APT ou YUM, les applications sont empaquetées et distribuées dans le cadre du système d’exploitation. Cela crée un délai entre le développement de l’application et son déploiement pour les utilisateurs finaux. En revanche, les développeurs d’applications peuvent publier leurs applications dans le Snap Store et les transmettre directement aux utilisateurs sans aucune intervention des responsables de la distribution.

Toutes les applications téléchargées sur le Snap Store subissent des tests automatiques, y compris une analyse des logiciels malveillants. Cependant, les applications Snap ne reçoivent pas le même niveau de vérification que les logiciels dans les archives Ubuntu ordinaires. Dans un cas, en mai 2018, deux applications du même développeur contenaient un mineur de crypto-monnaie qui s’exécutait en arrière-plan lors de l’exécution de l’application. Lorsque ce problème a été détecté, Canonical a supprimé les applications du magasin de Snaps et a transféré la propriété des Snaps à un tiers de confiance qui a republié les Snaps sans la présence du mineur. Bien que le bac à sable Snap réduise l’impact d’une application malveillante, Canonical recommande aux utilisateurs d’installer uniquement des Snaps provenant d’éditeurs approuvés par l’utilisateur.

Comme les packages du Snap Store sont gérés par les développeurs eux-mêmes, les responsables de la distribution ne peuvent pas garantir que les packages répondent aux normes de qualité et sont mis à jour en temps opportun. Dans un cas, Microsoft a laissé une version obsolète de Skype dans le magasin Snapcraft pendant plus d’un an.

Bien que le magasin Snap de Canonical soit actuellement le seul magasin existant pour les snaps, Snap lui-même peut être utilisé sans magasin. Les paquets Snap peuvent être obtenus à partir de n’importe quelle source, y compris le site Web d’un développeur. Adam Williamson, employé de Red Hat, et Clement Lefebre, chef de projet Linux Mint, ont critiqué Canonical pour avoir gardé certaines parties côté serveur du magasin Snap à source fermée. Clément déclare que cela crée un conflit d’intérêts qui nuit à la neutralité de Snap étant donné que Canonical développe Ubuntu.

Paquets Linux universelsedit

Les snaps sont des paquets autonomes qui fonctionnent sur une gamme de distributions Linux. Ceci est différent des approches traditionnelles de gestion de paquets Linux, qui nécessitent des paquets spécifiquement adaptés pour chaque distribution Linux.

Le format de fichier snap est un système de fichiers compressé unique utilisant le format SquashFS avec l’extension .snap. Ce système de fichiers contient l’application, les bibliothèques dont il dépend et les métadonnées déclaratives. Ces métadonnées sont interprétées par snapd pour configurer un bac à sable sécurisé de forme appropriée pour cette application. Après l’installation, le composant logiciel enfichable est monté par le système d’exploitation hôte et décompressé à la volée lorsque les fichiers sont utilisés. Bien que cela présente l’avantage que les snaps utilisent moins d’espace disque, cela signifie également que certaines grandes applications démarrent plus lentement.

Une différence significative entre Snap et d’autres formats d’emballage Linux universels tels que Flatpak est que Snap prend en charge n’importe quelle classe d’applications Linux telles que les applications de bureau, les outils de serveur, les applications IoT et même les services système tels que la pile de pilotes d’imprimante. Pour ce faire, Snap s’appuie sur systemd pour des fonctionnalités telles que l’exécution de services système activés par socket en un clin d’œil. Cela fait que Snap ne fonctionne que sur les distributions qui utilisent ce système d’initialisation.

sandboxEdit configurable

Les applications s’exécutent en un clin d’œil dans un conteneur avec un accès limité au système hôte. À l’aide d’interfaces, les utilisateurs peuvent donner à une application un accès médiatisé à des fonctionnalités supplémentaires de l’hôte telles que l’enregistrement audio, l’accès à des périphériques USB et l’enregistrement vidéo. Ces interfaces assurent la médiation des API Linux régulières afin que les applications puissent fonctionner dans le bac à sable sans avoir besoin d’être réécrites. Les applications de bureau peuvent également utiliser les portails de bureau XDG, une API standardisée créée à l’origine par le projet Flatpak pour donner aux applications de bureau en bac à sable l’accès aux ressources de l’hôte. Ces portails offrent souvent une meilleure expérience utilisateur par rapport aux API Linux natives car ils demandent à l’utilisateur l’autorisation de ressources telles qu’une webcam au moment où l’application les utilise. L’inconvénient est que les applications et les boîtes à outils doivent être réécrites pour pouvoir utiliser ces nouvelles API.

Le bac à sable Snap prend également en charge le partage de données et de sockets Unix entre les Snaps. Ceci est souvent utilisé pour partager des bibliothèques et des cadres d’application communs entre les Snaps afin de réduire la taille des Snaps en évitant la duplication.

Le bac à sable Snap s’appuie fortement sur le module de sécurité AppArmor Linux du noyau Linux en amont. Étant donné qu’un seul module de sécurité Linux (LSM) « majeur » peut être actif en même temps, le bac à sable Snap est beaucoup moins sécurisé lorsqu’un autre LSM majeur est activé. En conséquence, sur les distributions telles que Fedora qui activent SELinux par défaut, le bac à sable Snap est fortement dégradé. Bien que Canonical travaille avec de nombreux autres développeurs et entreprises pour permettre l’exécution simultanée de plusieurs LSM, cette solution est encore loin.

Le bac à sable Snap empêche les applications de bureau snappées d’accéder aux thèmes du système d’exploitation hôte pour éviter les problèmes de compatibilité. Pour que les Snaps utilisent un thème, il doit également être emballé dans un composant logiciel enfichable séparé. De nombreux thèmes populaires sont emballés par les développeurs de Snap, mais certains thèmes ne sont pas encore pris en charge et les thèmes inhabituels doivent être installés manuellement. Si un thème n’est pas disponible en tant que package instantané, les utilisateurs doivent choisir le meilleur thème correspondant disponible. Des travaux sont en cours pour faciliter l’empaquetage de thèmes par des tiers en un clin d’œil et l’installation automatique de thèmes système inhabituels.

Mises à jour automatiques et atomiquesedit

Plusieurs fois par jour, snapd vérifie les mises à jour disponibles de tous les Snaps et les installe en arrière-plan en utilisant l’opération atomique. Les mises à jour peuvent être annulées et utiliser l’encodage delta pour réduire leur taille de téléchargement.

Les éditeurs peuvent publier et mettre à jour plusieurs versions de leurs logiciels en parallèle à l’aide de canaux. Chaque canal a une piste et un risque spécifiques, qui indiquent la version et la stabilité du logiciel publié sur ce canal. Lors de l’installation d’une application, Snap utilise par défaut le canal latest/stable, qui se mettra automatiquement à jour vers les nouvelles versions majeures du logiciel lorsqu’elles seront disponibles. Les éditeurs peuvent créer des canaux supplémentaires pour donner aux utilisateurs la possibilité de s’en tenir à des versions majeures spécifiques de leurs logiciels. Par exemple, un canal 2.0/stable permettrait aux utilisateurs de s’en tenir à la version 2.0 du logiciel et de n’obtenir que des mises à jour mineures sans risque de modifications incompatibles en arrière. Lorsque l’éditeur publie une nouvelle version majeure dans un nouveau canal, les utilisateurs peuvent passer manuellement à la version suivante lorsqu’ils le souhaitent.

Bien que les mises à jour automatiques ne puissent pas être désactivées, il existe de nombreuses façons de configurer les mises à jour pour répondre à des besoins particuliers. L’utilisateur peut choisir de rester sur une version majeure spécifique du logiciel en spécifiant le canal, il peut configurer l’intervalle de mise à jour pour avoir le temps de vérifier manuellement les mises à jour, et il peut conserver les mises à jour jusqu’à 60 jours. De plus, les mises à jour sont également automatiquement désactivées sur les connexions mesurées. Même avec ces contrôles, un certain nombre d’utilisateurs ont exprimé leurs plaintes concernant l’absence d’option pour désactiver complètement les mises à jour automatiques.

SnapcraftEdit

snapcraft

Snapcraft Logo

Developer(s)

Canonical Ltd.

Initial release

29 October 2015; 5 years ago

Stable release
4.4.2 / 13 November 2020; il y a 4 mois

Référentiel

https://github.com/snapcore/snapcraft

Écrit en

Python

Écrit en

Python

Système d’exploitation

Linux, macOS, Microsoft Windows

Licence

GPLv3

Site Web

snapcraft.io

Snapcraft est un outil permettant aux développeurs d’empaqueter leurs programmes au format Snap. Il fonctionne sur n’importe quelle distribution Linux prise en charge par Snap, macOS et Microsoft Windows. Snapcraft construit les paquets dans une machine virtuelle à l’aide de Multipass, afin de s’assurer que le résultat d’une construction est le même, quel que soit le système de distribution ou d’exploitation sur lequel il est construit. Snapcraft prend en charge un grand nombre d’outils de construction et de langages de programmation tels que Go, Java, JavaScript, Python, C/C++ et Rust. Il permet également d’importer des métadonnées d’application à partir de plusieurs sources telles que AppStream, git, des scripts shell et des fichiers setup.py.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.