Snapcraft

=Introduction=

=Gestionnaire de paquet=

Dans les distribution Linux moderne, les logiciels sont installés à travers des paquets pré-compilés, qui sont des archives contenant des binaires de logiciels. Ces outils de gestion des paquets gardent une trace des mises à jour et s'assurer que toutes les dépendances requises sont installées à la place de l'utilisateur.

Les fonctionnalités que la plupart des gestionnaires de paquets fournissent sont :


 * Téléchargement de paquets : Les système d'exploitation fournissent des dépôts qui permettent aux utilisateurs de télécharger les paquets à partir.


 * Résolution des dépendances : Les paquets contiennent des métadonnées qui offres des informations sur les dépendances requises par chaque paquet respectif. Cela permet aux applications d'être installées en une seule commande, et aux programmes de s'appuyer sur des bibliothèques communes et partagées, cela réduit le volume et facilite la mises à jour des paquets.


 * Un format standard : Les paquets sont préparés uniformément dans l'ensemble du système pour faciliter l'installation. Bien que certaines distributions partagent des formats, des problèmes de compatibilité entre des paquets formatés de manière similaire pour différents systèmes d'exploitation peuvent survenir.


 * Conventions sur la configuration des applications et la disposition des fichiers : La configuration des applications et la disposition des fichiers dans les répertoires doivent respecter des conventions. En utilisant des paquets, les distributions peuvent appliquer une seule norme.


 * Configuration et fonctionnalités supplémentaires liées au système : Des correctifs peuvent être développés pour des système d'exploitation et donc être distribués dans les paquets. Ces modifications peuvent avoir un impact significatif sur l'expérience utilisateur.


 * Contrôle de la qualité : Les développeurs utilisent le processus d'emballage pour s'assurer que le logiciel est stable et ne provoque pas l'instabilité du système.

=Principaux gestionnaire de paquet=


 * Debian Package Management System (DPKG)
 * Advanced Packaging Tool (APT)
 * Aptitude Package Manager
 * Synaptic Package Manager
 * Red Hat Package Manager (RPM)
 * Yellowdog Update, Modified (YUM)
 * Dandified YUM (DNF)
 * Pacman Package Manager
 * Snappy

=Apt vs Snappy=


 * Apt
 * Paquets légers (n’encapsule pas les dépendances)
 * Meilleur intégration des thèmes aux os.
 * Les paquets sont revus par de nombreuses personnes, et pas seulement par l'éditeur.
 * Snappy
 * Les dépendances sont intégrés aux paquets
 * Facilité de déploiement de la dernière version
 * Les paquets sont isolés (suppression de toutes les données et dépendances)
 * L’isolation du paquet empêche de corrompre le système d'exploitation.

=Snappy, Snapcraft, snap=


 * Snappy un logiciel de déploiement et de gestion de paquets développé par Canonical sur Linux
 * Snapcraft est un utilitaire permettant aux développeurs d'empaqueter leurs programme au format .snap
 * Snapcraft facilite la création des paquets en permettant à l’utilisateur de spécifier les dépendance dans la fichier snapcraft.yaml
 * Un paquet .snap contient toutes ses dépendances

=Snapcraft=

=Fonctionnement=


 * find : sudo snap find blender
 * install :
 * refresh :
 * channel :
 * revert :
 * remove :

Solution "Telegraf + influxdb + Grafana"
=Démonstration= Voici la page de démonstration en lien avec cette synthèse :

=Auteur=
 * Année : VT2019
 * Sujet : Snapcraft
 * Auteurs : Thibaut ARNOUX | Maxime LORDEY

=Sources=
 * https://www.youtube.com/watch?v=pK4TKT3OaNQ
 * https://doc.ubuntu-fr.org/snap
 * https://www.tecmint.com/linux-package-managers/
 * https://www.reddit.com/r/Ubuntu/comments/a364ii/proscons_of_snap_vs_apt/
 * https://www.linode.com/docs/tools-reference/linux-package-management/
 * https://anglehit.com/ubuntu-snap-just-made-installing-new-apps-and-dependencies-on-16-04-lts-much-easier/
 * https://tutorials.ubuntu.com/tutorial/create-your-first-snap
 * https://dmnfarrell.github.io/software/python-snap
 * https://github.com/gocarlos/python-ubuntu-snap-app-example