Hypothèses
Honnêtement, je ne sais pas grand-chose sur les snap-packages - mais ce n'est pas pertinent pour cette question - voir ci-dessous. Je suppose que le système est sensiblement différent de celui existant.
Le changement est-il logique?
Existe-t-il un besoin réel, suffisamment fort? C'est - y a-t-il un nouveau cas d'utilisation, qui est suffisamment important pour développer un nouveau format - et l'infrastructure associée?
N'était-il pas possible de modifier la méthode actuelle pour couvrir également les nouveaux cas d'utilisation?
Ou est-ce que je manque le point?
Il est possible que ce que je vois soit principalement du marketing - de nouveaux noms et une présentation pour un changement technique minimal, pour avoir une chance que tout organisme le considère comme "nouveau et meilleur" et qu'il puisse être utilisé. En outre, il se peut que les nouveaux packages soient si étroitement basés sur le format existant qu'il s'agit principalement d'un changement de présentation à l'utilisateur. Bien sûr, cela pourrait être une bonne solution. Dans ce cas, cette question n'aurait pas beaucoup de pertinence.
Ensuite, j'espère que c'est encore assez utile pour répondre aux aspects secondaires. Faites-moi savoir si la question n'est pas utile ou déroutante pour les nouveaux utilisateurs, je suis heureuse de la supprimer.
Alors, pourquoi existent-ils?
Contexte
Ma première réaction a été "Cela n'a aucun sens!"
Cela ressemble à une situation où, sur le site de physique, quelqu'un a demandé, mécontent, pourquoi personne ne discutait de ses nouvelles idées brillantes dans les réponses. Cela ressemblait fortement à des idées de crackpot; Si loin des connaissances physiques réelles qu'il était difficile de trouver un point de départ. J'ai écrit une réponse qui n'a pas touché ses idées avec un seul mot, mais j'ai expliqué pourquoi on ne voulait tout simplement pas discuter de l'hypothèse d'idées de crackpot - pas le premier cas de cela. La réponse était en fait de frapper le point, je pense.
Si mes hypothèses étaient exactes, ce cas est similaire.
Mais alors, peut-être pas - voyons.
la source
Réponses:
Oui, il y a un réel besoin.
Il y avait un réel besoin pour quelque chose comme ça depuis la première fois qu'un logiciel dépendait d'un autre.
Soyons clairs:
La gestion des dépendances est difficile .
Il y a une raison pour laquelle cela s'appelle l' enfer de la dépendance . Des systèmes d'emballage comme RPM et Debian ont été créés dans le but d'éviter l'enfer des dépendances. Cependant, quelqu'un doit payer le coût:
Il y a une perte de liberté considérable dans l'une ou l'autre méthode.
Et c'est là que les snaps entrent en jeu: ils laissent le développeur inclure la version X et permettent au système de packaging de gérer les mises à jour. Qui paie le coût? L'utilisateur:
Quels avantages puis-je obtenir en échange?
la source
/opt
?AppArmor
est déjà sorti pour couvrir cela. mais le mode de protection peut être différent. Quoi qu'il en soit, le sujet est à bord.sudo apt-get install skype
mais je vois qu'il est disponible en un clin d'œil. Mais quand j'ai installé Chromium, je n'ai rien fait de spécial pour le faire utiliser snap. Pourtant, c'est le cas. Alors maintenant, je comprends POURQUOI les snaps existent, et je suis content qu'ils le fassent. Je suis maintenant curieux de savoir si je dois m'inquiétersudo snap install skype
?Une caractéristique particulière des snaps qui pourrait être utile est la possibilité de choisir un canal pour les développeurs qui fournissent plus d'un canal, comme la version , le candidat , le master , etc.
Par exemple, en cliquant sur le bouton Canal pour
nextcloud
afficher la boîte de dialogue dans la capture d'écran ci-dessous.Les autres arguments de vente solides sont l'isolement, l'immuabilité et le sandboxing qui sont contrôlés par un contexte de politique de sécurité , qui permet de définir des autorisations par application, également appelées «plugs», par exemple:
L'approche imite dans une certaine mesure les ensembles d'applications MacOS et le sandboxing d'applications Android avec des autorisations et des fournisseurs / récepteurs de contenu.
Maintenant, imaginez que vous devez exécuter une douzaine d'applications chacune avec sa propre version de certaines bibliothèques, sa propre version du runtime Python / Ruby / NodeJS et que vous ne voulez pas courir dans l'enfer des dépendances et gâcher ou polluer vos bibliothèques système, vos modules système Python / Node / Perl / Ruby, etc.
la source