Je suis sûr que ce n’est pas une question de paresse ou quoi que ce soit du genre, mais je ne comprends pas pourquoi les développeurs d’applications, même principalement grand public, ne font pas d’assistant d’installation où vous irez au prochain prochain. Les mêmes applications ont généralement des programmes d'installation pour Windows et Mac OS, alors pourquoi pas Linux?
Y a-t-il une raison technique à cette tendance ou s'agit-il simplement d'une convention?
EDIT (23-09-2014): Cette question n'a pas été posée pour déclencher une guerre des flammes Windows vs Linux. J'ai utilisé les trois principaux systèmes d'exploitation et, à part Linux, les deux autres (Windows et Mac OS) ont tous deux un programme d'installation. Je n'ai pas encore installé Oracle, mais peu importe ce que j'ai dû installer, je n'ai jamais vu aucun installateur graphique pour Linux.
Oui, je sais que Linux a des gestionnaires de paquets, les développeurs n'ont donc pas "besoin" de créer les programmes d'installation. Mais il reste toujours une quantité énorme de logiciels qui sont soit obsolètes dans les gestionnaires de paquets par défaut, soit tout simplement pas disponibles. De plus, étant donné que Linux est vendu comme une alternative à Windows pour les utilisateurs occasionnels (Ubuntu fait de son mieux dans ce domaine), il serait beaucoup plus logique de simplement donner aux utilisateurs ce à quoi ils sont habitués.
Prenons, par exemple, la configuration d’une pile LAMP. Ce sont tous des logiciels open-source dans les référentiels par défaut, mais pouvez-vous tout configurer en une seule fois sans script? Maintenant, regardez le serveur WAMP dans Windows. Vous venez de lancer un programme d'installation qui installe plusieurs logiciels de manière à ce qu'ils fonctionnent bien les uns avec les autres. Ensuite, il établit de bons paramètres par défaut. Les installateurs peuvent le faire, pas les gestionnaires de paquets. Oui, vous pouvez trouver un script pour cela en ligne, mais où? Et lequel?
Les installateurs ne sont pas une technologie obsolète du passé. Ils sont toujours utiles et 95% des utilisateurs les connaissent déjà bien.
Réponses:
Les développeurs doivent simplement fournir un package pour une distribution. Chaque distribution dispose alors d'un moyen d'installer ce paquet. De cette façon, vous pouvez utiliser un terminal (
apt-get
) ou une interface graphique, par exemple Ubuntu Software Center.La beauté est que les développeurs doivent juste se préoccuper de la construction d'un paquet approprié; les responsables de la distribution s’occupent du reste et chaque installation de paquet suit le même processus.
la source
Parce qu'ils n'en ont pas besoin. Les distributions Linux ont généralement des systèmes de gestion de paquets qui fonctionnent, contrairement à Windows, où chaque application doit réimplémenter l'installation et la mise à jour, encore et encore, encore et encore.
la source
La plupart des sources sont fermées, non sans que la bière en logiciels pour Linux ne sont livrés avec des assistants d'installation. Il en va de même pour certains logiciels libres, gratuits comme de la bière, du moins jusqu'à ce que la plupart des distributions majeures l'utilisent. Pour les logiciels open source, les gestionnaires de paquets sont une solution nettement supérieure.
Alors qu'en est-il des premières étapes avant que le logiciel open source ne soit repris par les principales distributions? Pourquoi les développeurs ne créent-ils pas d'assistants d'installation pendant cette phase?
Tout d’abord, beaucoup de développeurs open source se moquent bien de la distribution. Ils écrivent des logiciels pour leur propre usage, et les publient au cas où ils seraient utiles aux autres, mais ils considèrent que l'emballage pour la distribution est le problème de quelqu'un d'autre. Si cela vous plaît assez, quelqu'un se chargera de le faire entrer dans sa distribution préférée.
Les développeurs open source qui font soin de la distribution sont encore mieux de travailler au sein du système de gestionnaire de paquets, car c'est là leurs clients. Les utilisateurs de Linux ne recherchent généralement pas de logiciels sur le Web. Ils recherchent leur gestionnaire de paquets en premier. À défaut, ils effectuent une recherche dans les référentiels "gérés par la communauté", tels que les PPA d'Ubuntu ou les AUR d'Arch. Si vous ne vous trouvez pas dans ces endroits, votre logiciel ne sera probablement pas remarqué, et s'il est remarqué, il est moins probable que l'on vous fasse confiance.
Renoncer à ces canaux de distribution existants revient en quelque sorte à décider que les annonces de superbowl sont trop coûteuses. Vous allez donc organiser votre propre championnat de football et y faire de la publicité. C'est peut-être moins coûteux, mais c'est aussi moins efficace.
En ce qui concerne la personnalisation de la configuration, utilisez un logiciel comme un serveur Web qui est traditionnellement plus facile à gérer avec un fichier de configuration, ce qui facilite le partage, la sauvegarde et la restauration de la configuration.
Pour les logiciels clients tels que les navigateurs Web, il est préférable de créer un assistant de configuration qui apparaît la première fois qu'un nouvel utilisateur exécute le logiciel, plutôt que de le faire au moment de l'installation. La raison principale étant que Linux est un système d'exploitation multi-utilisateur, vous souhaitez donc le personnaliser de toute façon. Cela facilite également la réexécution ultérieure de l'assistant de configuration, pour quelque raison que ce soit, sans avoir à conserver le programme d'installation pour réinstaller l'intégralité du logiciel. Ce type d’assistant est assez courant dans les logiciels Linux.
la source
Les distributions Linux (ainsi que les Unice BSD) ont une interface conviviale pour l’installation de programmes, via des gestionnaires de paquets (ou la gestion des ports dans le cas BSD): pacman pour Arch, dpkg pour Debian / Ubuntu , etc.
Ces gestionnaires de paquets permettent d'installer des programmes à l'aide de fichiers de configuration uniformes. Une fois que le programme dont vous avez besoin est empaqueté selon le gestionnaire de paquets de votre distribution, vous pouvez simplement exécuter sa commande d'installation sur le paquet sélectionné (avec des personnalisations occasionnelles propres à l'utilisateur, même si souvent aucune). Le gestionnaire fait le reste.
Les gestionnaires de packages sont généralement plus conviviaux que les processus d’installation spécifiques à un programme de Windows. Ils vous permettent généralement également d'interroger la base de données du gestionnaire de paquets pour le programme que vous recherchez, voir ses dépendances.
Ils prennent également en charge la mise à jour centralisée des packages.
la source
dpkg
et APT sont utilisés à la fois dans Debian et Ubuntu.apt-get
,apt-cache
etaptitude
sont des emballages au-dessus dedpkg
.dpkg
est rarement utilisé directement, un cas d’utilisation auquel je peux penser est l’installation d’un paquet à partir d’un.deb
fichier.J'ai souvent posé cette question à moi-même et à d'autres personnes, et j'aimerais aborder un point que je vois souvent soulevé avant que j'arrive à comprendre pourquoi Linux voit moins d'installateurs:
Les distributions Linux fournissent des gestionnaires de paquets.
Cependant, je ne dirais pas que le gestionnaire de paquets d'une distribution Linux remplace un programme d'installation pour, notamment, les raisons suivantes:
Ces gestionnaires de paquets ne sont pas standardisés
Un gestionnaire de paquets revient un peu à fournir votre binaire et à laisser l’utilisateur final choisir l’installateur. Ils peuvent choisir le terminal ou choisir un outil avec une interface graphique plus avancée, mais cela ne vous permet pas de contrôler le processus de la même manière qu'avec un assistant d'installation "classique".
Un exemple de ce que je veux dire par contrôle est la documentation. Vous ne pouvez pas donner à votre utilisateur final des instructions telles que "Cliquez sur Suivant, et vous devriez voir". Vous pouvez donner des instructions en ligne de commande pour un outil spécifique, mais vous ne vous fiez pas uniquement au fait que l'utilisateur dispose de cet outil, mais vous perdez également la plupart des avantages d'un assistant d'installation (après tout, la plupart des assistants fournissent une -end pour des instructions simples en ligne de commande et le lancement de scripts).
Cela est également lié à l'esthétique. Vous dépendez maintenant de la distribution de vos utilisateurs finaux pour fournir une interface intuitive / appropriée. Bien que vous soyez pleinement conscient de ce fait, il n’est pas déraisonnable de la part d’un utilisateur occasionnel de se plaindre si un double-clic sur votre fichier (le programme d’installation à leur avis) ouvre un gestionnaire de paquets moche, ne fait rien du tout ou, pire encore, ouvre un terminal fenêtre. (Les expériences que j'ai vécues avec les utilisateurs et leur aversion pour le "prompt prompt" / "boîte noire et blanche" / "Une chose qui va supprimer tous leurs fichiers s'ils le regardent de manière amusante" pourraient probablement remplir un livre)
Les formats de paquet ne sont pas standardisés sur toutes les plateformes.
Il existe des outils pour convertir des systèmes tels que
rpm
etdeb
, mais il n'est pas raisonnable d'attendre de l'utilisateur final qu'il convertisse vos packages si vous les utilisez dans une situation où un assistant d'installation serait fourni sur une autre plate-forme (c'est-à-dire clic-and-done ) Fournir des packages mis à jour pour un format de package supplémentaire peut être assez simple si vous avez un système de construction rudimentaire, mais que vous ajoutez toujours un nouveau fichier binaire qui doit être pris en charge.Cela ajoute également un nouveau choix binaire que les gens doivent choisir en fonction de leur plate-forme (cela semble mineur, mais je suis sûr que quelqu'un ici peut attester qu'il doit expliquer x86 vs x64 avant [oui, il existe des moyens de déduire la bonne plate-forme de la navigateur, mais vous entrez dans des procédures encore plus compliquées et plus difficiles à supporter])
Les gestionnaires de paquets sont "plus agréables" pour les logiciels open source.
Cela ne veut pas dire que vous ne pouvez pas partager un logiciel à source fermée avec un système de gestion de paquets, cela est tout à fait possible. Mais une fois que vous essayez de partager un logiciel source près sur des distributions Linux, vous vous retrouvez face à des difficultés pour obtenir votre logiciel dans des référentiels communs. Des éléments tels que les PPA ou le service openSUSE Build sont supprimés et même les référentiels des partenaires Canonical ne sont pas activés par défaut.
Cela signifie que, sauf si vous fournissez votre propre référentiel, vous ne pouvez pas utiliser les principales fonctionnalités des systèmes de gestion de paquets, y compris les mises à jour automatiques. À mon avis , il s'agit du principal avantage de la plupart des plates-formes utilisant ces systèmes (par exemple, iOS, Android et Windows Store).
Et même si vous fournissez un référentiel (un autre travail de trivialité variable), vous devez toujours demander aux utilisateurs de le configurer (une autre couche de support, un autre ensemble d'approches non standard et un autre détournement du point d'origine de l'interface utilisateur). installateur)
Cela dit, je n’ai toujours pas abordé le problème initial, pourquoi les installateurs sont moins courants sous Linux malgré ces facteurs (entre autres). La question initiale demande si c'est technique, ou basé sur des conventions, et c'est basé sur les deux en partie.
Si vous examinez les facteurs ci-dessus que j'ai mentionnés, ils compliquent également la tâche d'un installateur de type "assistant". Par exemple, votre assistant inclurait-il plusieurs formats de paquet à installer? Comment gérez-vous l'aspect et la convivialité d'une distribution à l'autre? La liste est longue, et une chose que les paquets que ne vous offrent que rien de tout cela sera votre préoccupation ( pour le meilleur ou pour le pire ) tant que vous fournissez les bons paquets. Et selon la nature de votre projet, vous pouvez commencer à tirer parti de ces ressources plus "spécialisées", telles que la soumission d'applications au Centre de logiciel Ubuntu. Tout cela se rapporterait à la technique.
Mais l'aspect que je trouve personnellement être le moteur est la convention. (J'espère avoir enterré cela assez profondément pour que les gens qui ont rétrogradé cette autre réponse à l'oubli aient arrêté de lire ..)
Je pense que cette affiche avait un sens, mais aurait pu l'exprimer de manière trop crue, sans fournir de raisons objectives à ce point. Si vous examinez les différences que j'ai mentionnées pour un gestionnaire de paquets et un installateur, je ne serais pas surpris si vous trouviez que la plupart d'entre elles étaient quasiment sans problèmes (peut-être même à la limite de pédant). Mais (excusez ce que j'espère être considéré comme une utilisation légitime d'un argument ad hominem), nous sommes également des utilisateurs sur site pour les programmeurs. Je considère les distributions Linux comme une excellente alternative à Windows pour les utilisateurs occasionnels (entre autres choses évidemment). Ne pas fournir une procédure clics-et-fait généralement défini que tous ces utilisateurs peuvent utiliser est vraiment pas idéal imo .
Mais en même temps, je ne trouve pas que beaucoup de choses dans Linux soient particulièrement idéales pour ce groupe non plus. Bien sûr , certains ont distros gestionnaires de paquets basés sur l' interface graphique, mais que signifie que ces gens doivent commencer à chercher dans la façon d'utiliser un outil distinct, ce n'est pas strictement axée sur l'installation de votre programme (comparer ce et ce à cela ).
Naturellement, vous pouvez utiliser l’interface graphique pour créer la majorité des tâches que votre utilisateur occasionnel moyen doit faire, en particulier avec certaines distributions (paradoxalement, les activités de ces distributions ne sont pas toujours acceptées par la communauté open source [regardez les plaintes concernant Ubuntu et ses murs] garden "]) Mais je ne pense pas qu'il soit déniable que les conventions de Linux favorisent ceux qui sont à l'aise avec une interface de ligne de commande, ou du moins qu'ils ne craignent pas pour autant que son apparence ne leur ait fait faire une chose horriblement mal.
Je ne dis pas que c'est ce qu'ils visent, mais c'est vraiment ce que je vois dans ces conventions. Et les systèmes de gestion de paquets sous Linux semblent suivre cela. Après tout, la plupart de leurs "inconvénients" sont quasi inexistants si votre utilisateur final est plus à l'aise avec les concepts sous-jacents.
Les installateurs de la plupart des autres plates-formes ne sont pas vraiment affectés par cela et sont conçus pour, pour citer un commentaire à la question, "99,99% des utilisateurs [peuvent] cliquer à l'aveuglette sur" Continuer ". Le problème de la gestion des paquets est de les amener à un bouton "Continuer", leur indiquant ce qu'est le bouton "Continuer" (j'ai vu des utilisateurs se faire tromper par des outils disant d'appuyer sur Entrée avec un autre texte), et leur permettant de savoir quand ils ont cliqué sur cette touche " l'étape "Continuer" ".
la source
Pour les grands étend c'est les deux. Le modèle de distribution Linux est plus proche de l’AppStore / Play Store que celui de Windows / Mac OS X traditionnel - et même ces plates-formes s’éloignent de ce que j’ai entendu dire.
La convention est que c'est plus simple. La plupart des arguments de l'AppStore / Play Store s'appliquent également à Linux:
En outre, il existe des avantages suivants, qui peuvent ne pas s'appliquer à AppStore / Play Store:
la source
Généralement, l'installation n'a pas besoin d'interaction avec un utilisateur (la plupart des
apt-get
packages, par exemple), ou peut être scriptée. Cela facilite l'automatisation afin de déployer un logiciel sur de nombreuses machines. Au lieu de procéder par le biais de l'assistant, vous procédez de la même manière via des scripts ou des fichiers de configuration.Étant donné que dans le monde Linux, le terminal vient en premier et que l'interface graphique est facultative, il devient évident pourquoi ils ne disposent pas d'assistants d'installation.
Windows, en revanche, est très orienté utilisateur. La plupart des fichiers MSI peuvent facilement être déployés de manière autonome, de la même manière que l'installation de Windows (le fait qu'il soit facile / difficile de faire fonctionner WAIK est un sujet différent). Cela signifie également que de nombreuses applications pour Windows ne sont pas basées sur MSI et ne peuvent pas être scriptées. Parmi les applications d'entreprise, les produits Adobe, par exemple, sont connus pour être assez difficiles à installer à l'aide d'un script.
la source
Le public cible est différent. Unix, et les systèmes de type Unix, étaient généralement utilisés par des programmeurs professionnels, des administrateurs système, des ingénieurs et des amateurs sérieux qui personnalisaient chaque système en fonction de leurs besoins. Tous les "assistants d'installation" limiteraient uniquement leurs choix au lieu de donner accès à toutes les variables dont ils ont besoin. Et ceux qui sont maintenant là-bas le font toujours.
Windows ne s'adresse pas aux professionnels de la même manière et a donc plus d'installateurs généraux destinés aux "utilisateurs" qui veulent seulement que la chose soit installée. Linux rassemble de plus en plus de types d'utilisateurs qui apprécieraient probablement une telle chose, mais il est possible que la plupart des distributions aient encore le professionnel à l'esprit.
la source