Quelle est la différence entre SNAP et APT sur Linux ?

Topic : Programmation   | Publié 1 year ago

Comparé aux autres systèmes d'exploitation traditionnels, Linux adopte une approche différente de la gestion des logiciels. Les logiciels sous Linux sont traditionnellement organisés en référentiels. Les référentiels contiennent des applications et toutes les dépendances nécessaires à leur exécution.

Bien que l'utilisation de référentiels soit pratique pour de nombreuses raisons, elle présente souvent un obstacle pour les utilisateurs qui ne maîtrisent pas la technologie. Plusieurs systèmes de packaging alternatifs ont été créés au cours des deux dernières années pour rendre l'expérience Linux plus conviviale.

Dans cet article nous allons faire la différence entre  SNAP et APT, deux  systèmes de packaging alternatifs très populaires.

SNAP c’est quoi?

Snap est un système d'empaquetage et de déploiement de logiciels développé par Canonical pour les systèmes d'exploitation utilisant le noyau Linux. Les paquets, appelés snaps, et l'outil pour les utiliser, Snap, fonctionnent sur une gamme de distributions Linux et permettent aux développeurs de logiciels de distribuer leurs applications directement aux utilisateurs. Les snaps sont des applications autonomes qui s'exécutent dans un bac à sable avec un accès modéré au système hôte. Snap a été initialement publié pour les applications cloud, mais a ensuite été porté afin de fonctionner pour les périphériques Internet des objets ainsi que les applications de bureau.

Alors qu'APT obtient principalement des packages à partir des référentiels officiels d'une distribution, Snap permet aux développeurs de fournir leurs applications directement aux utilisateurs via le Snap Store. Les développeurs peuvent également publier des snaps directement sur leurs sites Web.

Vous trouverez ci-dessous un exemple d'installation de Thunderbird utilisant le snap commande:

APT C’est quoi?

apt (en minuscule) est un outil en ligne de commande qui permet de gérer des paquets en provenance de dépôts APT (en majuscule).

Il permet donc principalement d'installer et de désinstaller des logiciels en ligne de commande sur Ubuntu.

L'un des principaux avantages d'APT est la façon dont il gère les dépendances logicielles. Après qu'un utilisateur a lancé une commande pour installer un paquet, APT recherche dans les référentiels les dépendances du paquet et installe celles qui n'ont pas encore été installées sur le système.

L'outil qu'APT utilisé principalement pour s'interfacer avec les utilisateurs est apt. L'utilitaire offre le plus populaire apt-get et apt-cache commandes, considérées comme moins conviviales.

La capture d'écran montre l'installation de Thunderbird à l'aide de apt:

Différences entre snap et apt

Snap et apt semblent similaires à première vue : ils permettent tous deux la gestion des applications via des packages et vous permettent d'installer et de supprimer des logiciels avec des commandes simples. En fait, de nombreuses commandes snap et apt, telles que les commandes install et remove , sont identiques.

Là où snap et apt diffèrent, cependant, c'est dans la façon dont ils conditionnent le logiciel. Snap inclut tout ce qui est nécessaire pour exécuter une application - y compris ses dépendances - dans un seul package, mais apt s'attend à ce que les utilisateurs déploient les dépendances en tant que packages distincts à côté du package de l'application.

Cela peut sembler être une différence mineure, mais cela a plusieurs implications importantes sur le fonctionnement des logiciels snap et apt :

Versions logicielles. Apt installe le logiciel directement sur votre système, vous ne pouvez donc installer qu'une seule version de chaque application utilisée. Cependant, bien qu'il existe des moyens de gérer les versions d'application en conflit avec apt, ce n'est pas un processus clair ou simple. Avec snap, il est facile d'installer plusieurs versions d'application sur le même système.

Création de colis. Les packages Snap sont plus faciles à créer que les packages apt dans la mesure où vous pouvez regrouper les dépendances dans le package, plutôt que de les définir et de vous attendre à ce que le système de l'utilisateur dispose des bonnes dépendances.

Retrait de colis. Étant donné que toutes les données d'application et les dépendances d'un package de composant logiciel enfichable sont autonomes, vous pouvez supprimer l'intégralité de l'application en supprimant le composant logiciel enfichable. Bien qu'apt supprime également toutes les données associées à une application, dans la plupart des cas, il existe un risque qu'apt ne parvienne pas à supprimer certaines données lorsque vous supprimez une application. 

Sécurité. À certains égards, les snaps sont plus sécurisés car ils peuvent s'exécuter sans privilèges root, bien que snap attende les privilèges root par défaut pour installer des packages snap sur votre système. Les deb nécessitent des privilèges root. Théoriquement, il est possible de décompresser un paquet Debian et d'exécuter les données en tant qu'utilisateur non root, mais ce n'est pas ainsi que les paquets fonctionnent, et cela produira une pléthore d'erreurs et de problèmes.

Snap Vs. APT : lequel choisir ?

Choisir SNAP si:

Vous ne voulez pas que des packages inutiles soient intégrés dans votre système. Avec les Snaps, les colis restent confinés dans le .snap.

Vous voulez vous assurer que vous disposez de la version la plus récente de l'application. Mises à jour instantanées automatiquement et en continu, sans gel de fonctionnalités pour des distributions spécifiques.

Vous souhaitez isoler une application.

Choisir APT si:

Vous préférez que les applications soient examinées par la distribution que vous utilisez.

Vous êtes soucieux de conserver votre espace de stockage. Les applications installées par APT partagent leurs dépendances.

Vous voulez que les applications s'intègrent correctement dans l'environnement de l'interface graphique.

Les articles de la même catégorie
Qu'est-ce que MVC ?
Qu'est-ce que MVC ?
Vous êtes un développeur de logiciel débutant et vous voyez ou entendez beaucoup parler de MVC. C'est tout à fait normal, dans cet article, nous allons en parler. Dans le développement de la programmation orientée objet, le Modèle-Vue-Contrôleur (MVC) ...
5 years ago
Pourquoi avez-vous besoin d'une application native ?
Pourquoi avez-vous besoin d'une application native ?
Les entreprises créent des applications mobiles pour mettre leurs concurrents au défi de gagner l'intérêt des consommateurs. Les applications mobiles ouvrent des possibilités aux gens. Les hommes d'affaires peuvent facilement trouver un moyen de créer ...
4 years ago
Quand et pourquoi Java est utilisé pour le développement d'applications ?
Quand et pourquoi Java est utilisé pour le développement d'applications ?
Java est un langage de programmation populaire et est utilisé à grande échelle dans le monde entier pour le développement d'applications. Il présente des avantages tels que le multithreading, l'extensibilité, la gestion de la mémoire, la haute sécurité,
4 years ago