Question

Je ne suis qu'un programmeur amateur plus ou moins et j'ai grandi dans le codage dans le monde .NET ClickOnce.

Quand on "installe" un programme, que se passe-t-il réellement?!

Aussi: Quelques petites applications / outils viennent de l'exe. Pourquoi la plupart des programmes nécessitent-ils un processus d'installation sophistiqué? Quels sont les avantages, les inconvénients, les avantages et les inconvénients? les inconvénients? L’installation est-elle généralement nécessaire ou plutôt conforme aux pratiques habituelles?

Toutes mes excuses pour les questions supplémentaires. J'espère seulement que les facteurs clés seront expliqués de manière plus ou moins explicite par un simple profane.

Était-ce utile?

La solution

Vous examinez beaucoup de raisons héritées de ce qui est devenu une pratique courante dans le monde Windows.

Tout d’abord, un peu de contraste, car ce n’est pas toujours le cas. Une " application " sous Mac OS X, il s’agit simplement d’un répertoire contenant une certaine structure et portant l’extension .app . L'installation d'une application est aussi simple que de la faire glisser (uniquement l'icône de l'application) dans votre dossier Applications, et sa désinstallation implique de la faire glisser dans la corbeille. C'est ça, aucun installateur sophistiqué n'est (généralement) nécessaire.

Sous Windows, les applications sont généralement construites à partir de composants indépendants devant être "enregistrés". Cela implique que le programme d'installation écrit des fragments dans le registre Windows pour indiquer à Windows où trouver les composants. Oui, l’application devrait probablement savoir où les trouver (car elles sont toutes installées au même endroit), mais des années d’héritage et des façons différentes de connecter des composants nous ont menés là où nous sommes aujourd’hui.

En règle générale, un programme d'installation sous Windows:

  • copie des fichiers
  • enregistre les composants
  • définit les autorisations de sécurité (le cas échéant)
  • ajoute des icônes au menu Démarrer et / ou au bureau
  • écrit davantage d'éléments dans le registre pour indiquer à Windows d'ajouter le programme à "Ajout / Suppression de programmes"

Autres conseils

Le programme essaie de modifier l'ordinateur de manière à ce qu'il fonctionne et que tous les produits concurrents échouent. Sous Windows, cela signifie:

  • Modification de clés arbitraires dans le registre jusqu'à ce qu'il devienne lent et plein d'entrées brisées
  • Remplacement des DLL par la seule version ancienne que votre logiciel peut utiliser
  • Étaler autant de fichiers dans autant d'endroits que possible
  • Créer un script de désinstallation pour garder l’illusion que l’utilisateur peut se débarrasser du logiciel sans réinstaller le système d’exploitation. Dans le cas peu probable où l'utilisateur essaierait d'exécuter ce script, vous pouvez lui apprendre à ne plus jamais le faire avec des questions telles que "Le fichier ... peut être utilisé par d'autres applications. Voulez-vous vraiment le supprimer? Oui / Non / Peut-être / N'importe quelle réponse / Toutes les réponses sont correctes
  • Installation de points d'ancrage dans des endroits obscurs pour que votre logiciel s'exécute au démarrage de l'ordinateur. Cela peut ralentir le processus de démarrage, mais votre logiciel va démarrer dans un instant, vous ne payez donc que très peu cher ... pour vous.
  • Faire des choses obscures qui prennent beaucoup de temps, mais personne ne peut dire ce que vous faites (que fait "Le programme d'installation prépare l'installation" pendant 15 minutes?)
  • Vérifier si l'espace disque est suffisant mais utilisez des entiers 32 bits pour vous assurer qu'il ne peut pas être installé sur des disques de 1 To.
  • Une tâche importante consiste à échouer lors de l'installation et à afficher l'erreur suivante: "Échec de l'installation. Cela peut être dû au fait qu’un logiciel antivirus est installé. Veuillez le désactiver et réessayer. & Quot; Cela garantira que les utilisateurs commenceront à se méfier de leur anti-virus (surtout si l'installation réussit lors de la deuxième exécution car les bugs obscurs de l'installateur n'ont pas été déclenchés) et beaucoup d'entre eux oublieront d'activer à nouveau le scanner de virus ou même désinstaller la fichue chose.

    Les auteurs de virus du monde entier sont aussi des êtres humains! Les pourriels compensent l'essentiel du trafic sur Internet, ce qui signifie que c'est important et que ne voudrait pas faire partie de la plus grande communauté du monde? En plus de cela, vous pouvez gagner beaucoup d'argent de cette façon. Tout ce dont vous avez besoin d’une conscience faible et / ou d’une énergie criminelle.

  • Une partie très importante de votre programme d'installation consiste à augmenter la clé de registre HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ S-7-9-23-64738-1349283462-3754093625- 4491 \ IsYourWindowWideEnough \ NotGivenUpYetHuh \ GoAway \ ImportantSystemInformation \ Voyons comment vous pouvez gérer les espaces \ DamnIGottaStopSincePathsCanHaveOnl \ ReinstalCtr

    Cet important compteur système contribuera à créer l’illusion d’instabilité pour l’utilisateur jusqu’à sentir une forte envie de réinstaller l’ensemble du système. Cela aidera l’industrie informatique professionnelle à vendre des heures d’assistance, de nouveaux ordinateurs, plus de RAM, de plus gros disques durs ou de nouvelles versions de Windows (elles doivent être meilleures, non?).

Remarque: si vous prenez ce texte au sérieux, demandez l'aide d'un professionnel.

Les raisons d'utiliser un "fantaisie" processus d'installation

  1. pour enregistrer le processus d'installation afin qu’il puisse être rejoué (réparation) ou annulé (désinstaller)
  2. effectuer des actions au-delà de la simple copie de fichier (créer des clés de registre, enregistrer des composants, effectuer d'autres actions arbitraires

Le " standard " l'option sur la plupart des installations sera "tous les bits habituellement souhaités, dans un emplacement standard, comme Program Files". installer sans personnalisation, éventuellement sans certaines fonctionnalités de niveau expert activées.

Wikipedia nous indique qu'un programme d'installation typique crée ou modifie les éléments suivants:

  • Fichiers de programme partagés et non partagés
  • Dossiers / répertoires
  • entrées de registre Windows (Windows uniquement)
  • Entrées du fichier de configuration
  • Variables d'environnement
  • Liens ou raccourcis

Ainsi, si votre programme nécessite une ou plusieurs de ces modifications, vous devez créer un programme d'installation qui effectue ce travail.

Dépend du programme que vous installez. Un " Installation " Cela peut aller de copier simplement le fichier exécutable (relativement petit) dans un répertoire, à la configuration de bibliothèques partagées, en effectuant des contrôles de niveau de correctif (je suis conçu pour fonctionner sur SP2 ou supérieur - ai-je le SP2 ou supérieur?) et la modification de la configuration des systèmes, pour l'utilisateur actuel ou pour tous les utilisateurs. La plupart d’entre eux enregistrent également l’installation avec un gestionnaire de paquets afin que vous puissiez facilement le désinstaller ultérieurement.

Un installateur résume le processus de déploiement d'éléments informatiques complexes , généralement contenus dans une archive, via une interface utilisateur autonome et pratique .

Cette interface utilisateur peut être graphique ou basée sur du texte qui est affiché sur une ligne de commande telle que le shell Unix (par exemple, bash). Dans le cas des installateurs graphiques, on utilise le plus souvent ce qu'on appelle une installation-bootstrapper, dans ce dernier cas, des scripts d'installation qui peuvent être des scripts bash, des scripts de lot Microsoft, ou tout autre langage de script s'exécutant sur une ligne de commande.

Dans le cas le plus simple , une application est simplement un fichier exécutable , le système d'exploitation sachant quoi faire avec le fichier pour l'exécuter. Le fichier d'application peut résider dans un dossier avec des sous-dossiers et d'autres fichiers auxiliaires, regroupés dans une archive . Dans ce cas, aucun programme d’installation ne sera nécessaire.

Pour les logiciels complexes , des plates-formes logicielles complètes et une intégration étroite avec l'infrastructure du système d'exploitation sous-jacent peuvent être souhaitables, par exemple pour faire respecter le droit d'auteur d'un produit logiciel.

De nombreux installateurs sous Windows fournissent un indicateur / e ou / extract . par exemple. setup.exe / e pour permettre l'extraction du contenu de l'archive sans que le programme d'installation n'exécute son script d'installation. J'ai récemment eu besoin de ça .

Changements de mentalité

Les installateurs sont presque devenus une norme pour la fourniture de logiciels professionnels, aussi simples que soient les actifs logiciels sous-jacents. Avec un nombre croissant d’utilisateurs avertis et le désir de migrer leurs applications d’un bureau à l’autre, les logiciels portables , souvent fournis sous forme de simples archives, gagnent en popularité.

(Je ne sais pas combien de temps au total j'ai passé chez les installateurs, mais c'est définitivement de l'ordre du jour.)

Les tâches que l'installateur peut gérer sont les suivantes:

  • décompression (en utilisant souvent des archiveurs exotiques à forte compression)
  • assurer la configuration matérielle requise
  • assurant un espace disque suffisant
  • assurer la configuration requise pour l'exécution de la plate-forme logicielle (par exemple, "redistribuables")
  • recherche de mises à jour logicielles plus récentes
  • téléchargement du logiciel depuis un référentiel distant
  • créer et / ou mettre à jour les fichiers et les dossiers du programme
  • créer des fichiers de configuration, des entrées de registre ou des variables d'environnement
  • installer des pilotes de logiciel, monter ou démonter des périphériques
  • augmentez l'accessibilité pour les utilisateurs quotidiens en expliquant les étapes d'installation, en créant des liens, des raccourcis
  • promouvoir son propre logiciel par le biais de favoris, etc ...
  • incite l'utilisateur à démarrer le logiciel en présentant les points clés du logiciel lors de l'installation, diapositive par diapositive
  • créer des revenus supplémentaires grâce au groupement de logiciels
  • configure les modules du noyau et exécute automatiquement les composants (démons, services Windows, par exemple)
  • correction automatique du logiciel
  • définition des autorisations sur les dossiers, les fichiers et les utilisateurs
  • création de références UUID pour coupler le logiciel à une instance d'installation et empêcher la portabilité

PS: Si vous pouvez penser à d’autres points, faites-le-moi savoir et je les intégrerai.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top