Nous voyons que la plupart des logiciels Windows sont regroupés dans un seul fichier exécutable. Lorsque je double-cliquez sur le fichier d'installation, il configure tous les fichiers, fichiers binaires et bibliothèques avec lui.
Je comprends la dépendance d'Ubuntu ou plus généralement des packages Linux. Mais je me demande pourquoi cela existe. N'est-il pas possible de construire un seul fichier avec toutes les dépendances? Quels sont les problèmes avec cette méthode?
Veuillez essayer de donner la raison en détail.
Ce n'est pas totalement vrai. Le logiciel Ubuntu est généralement fourni dans un seul fichier .deb. Étant tout à fait simpliste (et inexact), les fichiers .deb sont le fichier .exe correspondant pour Windows. Tous les programmes, y compris ceux de Windows, utilisent des dépendances avec d'autres fichiers du système d'exploitation (bibliothèques). Le processus d'installation est juste plus ou moins explicite dans différents OS. Lorsque vous utilisez le centre logiciel d'Ubuntu pour télécharger un programme, vous téléchargez uniquement les dépendances qui ne sont pas installées sur votre système et les fichiers de programme réels. Cela empêche le système d'être surchargé de fichiers en double et de fonctionnalités en double qui se retrouveraient dans des conflits.
Croyez-le ou non, la seule différence entre l'installation d'un programme dans Windows ou Ubuntu est la quantité d'informations qu'ils fournissent aux utilisateurs. Windows pense que ses utilisateurs sont stupides et ne veulent pas qu'ils sachent ce qu'il est installé lors de l'exécution d'un fichier exe. Sous Linux, vous obtenez ces informations ... pour certains utilisateurs, c'est trop de détails, mais d'autres (la plupart) l'apprécient vraiment.
j'espère que cela a du sens.
la source
.deb
est.msi
.Sur Ubuntu, la plupart des logiciels sont fournis dans un seul fichier. Il s'agit d'un
*.deb
fichier de paquet Debian qui est téléchargé, décompressé et installé à partir de votre gestionnaire de paquets.Pourquoi Ubuntu n'installe-t-il pas de logiciel à partir d'exécutables à extraction automatique comme la plupart des logiciels Windows?
Parce que les
*.exe
fichiers auto-extractibles sont une proposition très dangereuse à accepter.Les différences les plus critiques entre un exécutable auto-extractible et un système de packaging, comme celui de Debian / Ubuntu, sont:
Plus en détail:
Sécurité
Dans le monde Windows, vous devez faire confiance à ce
*.exe
fichier unique . Comment peut-on vraiment être sûr qu'on peut lui faire confiance? Comment pouvez-vous même savoir qu'il installe quelque chose? Comment pouvez-vous être sûr qu'il ne fait rien d'autre derrière votre dos?Dans Ubuntu, tous les packages sont signés numériquement, donc en utilisant un fichier de package séparé - le gestionnaire de packages (que ce soit muon, synaptic, aptitude, ou même straight apt) - vous obtenez le contenu vérifié avant même qu'il ne soit décompressé, et encore moins installé. Cela suppose, bien sûr, que vous ayez confiance dans les référentiels. Je préfère faire confiance aux référentiels Ubuntu (une seule autorité) qu'à des centaines de sources souvent inconnues à télécharger.
Contrôle granulaire
Avec un
*.exe
fichier, vous pouvez essentiellement faire une chose: l'exécuter. Dans Ubuntu, vous pouvez inspecter le contenu du package, les descriptions, les configurations, les fichiers individuels, les dernières modifications, les corrections de bogues, etc. à partir de la commodité de votre gestionnaire de packages, avant de décider d'installer ou non.Lorsque vous installez à partir d'un
*.exe
fichier, vous devez également faire confiance à son crochet de «désinstallation» (et tous les*.exe
fichiers ne sont pas garantis d'en avoir un). Dans Ubuntu, tous les fichiers appartenant aux packages standard installés par le gestionnaire de packages peuvent toujours être désinstallés car c'est une fonction du gestionnaire de packages, pas du package lui-même. Le gestionnaire de packages est une application distincte et approuvée, qui fournit à la fois le programme d'installation et le programme de désinstallation, le package ne peut pas vous enlever le crochet de désinstallation. Bien sûr, un paquet malveillant peut se faufiler via des actions post-installation, mais c'est pourquoi nous avons le système de référentiel officiel et les mêmes personnes en qui nous avons confiance pour les maintenir.Transparence
Cela va plus loin. Sur Ubuntu, je peux vraiment faire confiance à mon système, car je peux vérifier le logiciel à plusieurs niveaux. Le niveau ultime est de pouvoir regarder le code source. les packages binaires ont des packages source correspondants. Je peux en fait regarder la source (Exemple: ' apt-get source bash ' vous donnera les sources complètes du shell bash). Dans le monde des fichiers * .exe, il n'y a généralement que des binaires, et qui sait ce qu'ils font réellement dans les coulisses?
Cela dit, il y a toujours des exceptions aux règles, mais pour moi, la sécurité et la confiance signifient que je ne peux pas accepter l'exécution de binaires provenant de centaines de sources différentes qui sont difficiles à vérifier comme moyen standard d'installer des composants sur mon système.
la source
En plus de ce qui a été dit par d'autres, parfois un seul logiciel est divisé en plusieurs packages car toutes les fonctionnalités ne sont pas pertinentes pour tous les utilisateurs. Par exemple, si la documentation d'un programme est volumineuse, elle sera généralement fournie par un package séparé. Cela permet aux utilisateurs qui ne sont pas intéressés par ces fonctionnalités optionnelles d'économiser de l'espace disque et de la bande passante / du temps pour le téléchargement.
la source
Essayons de partager ma compréhension des dépendances (Oui, j'étais conscient du mérite d'Ubuntu ou plus généralement de la manière Linux de gérer les logiciels. J'essayais simplement de rassembler toutes les bonnes opinions et la raison de manière centrale, afin de pouvoir en démontrer de mes amis) .
Les logiciels Windows sont généralement regroupés dans un seul fichier. Est-ce à dire qu'ils n'ont aucune dépendance?
Non, presque tous les logiciels dépendent de certains autres logiciels. (Sauf si ce logiciel est de très bas niveau et peut communiquer directement avec le matériel, comme le système d'exploitation lui-même) . Les logiciels de Microsofts ne sont pas exempts de dépendance. Donc, la question importante est: comment ils gèrent cela?
Réponse: Ils gèrent cela à leur manière traditionnelle. En supposant que la plupart de leurs utilisateurs sont stupides, ils ont simplement mis toutes les dépendances dans le fichier unique, résultant en un logiciel de plus grande taille (1 fichier).
Pour un exemple, voir les jeux publiés pour Microsoft. Presque tous les jeux incluent des configurations DirectX, bien que les utilisateurs puissent déjà en avoir des versions mises à jour.
Voici quelque chose que j'ai trouvé sur Google sur la raison pour laquelle DirectX est inclus avec chaque jeu.
cliquez ici pour l'article complet. Il est clair qu'ils ne se débrouillent pas très bien avec la gestion de la dépendance.
La plupart du temps, quelles que soient les dépendances déjà en place, ils le fournissent pour gagner en simplicité (pour leurs utilisateurs) . Voir également combien de thèmes de logiciels incluent les composants d'exécution .NET.
Un autre exemple de mon expérience: une fois que j'ai téléchargé et installé un logiciel MS. Étant satisfait du processus, j'ai cliqué sur l'icône pour ouvrir le logiciel, Seulement alors il me dit que "j'ai besoin de Java pour fonctionner". Une telle situation ne se produit jamais dans un monde Linux via sa gestion de paquets. (sauf si vous essayez de télécharger des fichiers .deb à partir du site du référentiel et de les installer en double-cliquant, à la mode MS) .
Comment Linux gère ce problème de dépendance?
Eh bien, Linux ou Ubuntu ne cache pas le fait que, vous devez avoir des dépendances installées pour utiliser le logiciel (contrairement à la manière Microsoft). Mais lorsque vous avez installé les composants, un autre logiciel qui dépend du même composant utilise les dépendances installées précédemment installées (contrairement aux logiciels MS, y compris tout).
la source