Depuis l'époque de Windows XP, les programmes d'installation de Windows (fichiers .msi), y compris les programmes d'installation InstallShield (qui n'est qu'un bootstrap pour MSI), ont mis environ cinq fois plus de temps à désinstaller une application que les autres programmes d'installation. Il en va généralement de même pour l'installation.
Pourquoi prennent-ils encore autant de temps et pourquoi les gens utilisent-ils toujours MSI pour l'installation? Par exemple:
Désinstaller VLC - prend environ 5 secondes.
Désinstaller XYZ - lance "Préparation de la suppression ..." suivi d'un délai de 15 secondes.
Tout ce qu'il fait, c'est supprimer des fichiers et nettoyer le registre (ce qui peut inclure des enregistrements COM), alors pourquoi cela prend-il si longtemps?
Do you want to allow the following program from an unknown publisher to make changes to this computer?
se cachait en arrière-plan.Réponses:
Le programme d'installation de Windows crée d'abord systématiquement un point de restauration du système, ce qui est une opération assez lente.
Également de l'article intitulé, à juste titre, "Windows Installer est nul" , un extrait:
J'ajoute également que le programme d'installation de Windows conserve toutes les informations dans le registre, qui n'est pas la base de données la plus rapide au monde.
la source
dpkg
utilisé pour sa base de données de packages (bien que, certes, dpkg ne stocke pas tout dedans):/var/lib/dpkg/status
est un fichier texte plat qui répertorie chaque package qui a été installé une fois, et n'a pas été purgé depuis - et je ne suis même pas sûr qu'il omet toujours les purgés.dpkg
ne me ment pas avec des barres de progression qui disent "Temps restant: 0 seconde" pendant deux minutes, cependant ...Windows Installer a en effet la réputation d'être lent. Il y a quelques choses qui contribuent à cela et je vais les aborder ci-dessous. Mais au final, il faut se demander si une, deux ou trois minutes sont vraiment un sujet de discorde lors de l'installation et de la désinstallation d'un logiciel. Je prends plus de temps que ça en feuilletant les chaînes de télévision :)
Le registre
C'est le coupable numéro un. Windows Installer fait un usage intensif du Registre pour ses opérations. À mesure que votre système évolue, que vous installez et désinstallez des applications et que la taille du registre augmente ou se fragmente, MSI ralentit. La même application s'installe et se désinstalle beaucoup plus rapidement sur une installation Windows vierge que sur un système arrivé à maturité. La solution ici est d'essayer de garder le registre propre et défragmenté.
Pour le nettoyage du registre, utilisez l'un des nombreux outils disponibles sur le marché. Mais pour la défragmentation du registre, je ne peux pas recommander suffisamment de NTREGOPT pour l'optimisation interne des ruches et de PageDefrag pour la défragmentation des fichiers physiques.
La raison pour laquelle les opérations MSI peuvent devenir lentes dans le registre est liée à la façon dont MSI l'utilise. Windows Installer utilise le registre pour savoir quels produits ont installé quels composants et à quel emplacement il a été installé. Les GUID d'installation d'origine sont utilisés au format compressé. Les informations par machine sur les installations peuvent être trouvées sur
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18
, tandis que les données par utilisateur se trouvent à côté sur un sousHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\
et sur une clé avec le SID de l'utilisateur.Ces deux clés peuvent être assez volumineuses et contenir de nombreuses sous-clés et valeurs. Ils contrôlent les produits, les composants et les chemins d'accès de chaque application installée. Toutes ces informations doivent être lues et traitées pour une procédure de désinstallation correcte. Cependant, le format de registre répertorie les clés par ordre alphabétique, ce qui permet des recherches binaires. Mais les valeurs ne le sont pas. Ils sont stockés au fur et à mesure de leur création, une procédure de recherche linéaire doit donc être effectuée. Ce qui ralentit les performances de l'algorithme.
Dans l'ensemble, MSI est une méthode plutôt complète et précise pour l'installation et la désinstallation de logiciels. Mais il souffre de sa dépendance au registre. Le système est excellent. C'est le registre Windows qui aurait dû être refait il y a longtemps :)
Pour des informations plus avancées:
Pour une analyse approfondie de ce que fait MSI pendant chaque procédure d'installation ou de désinstallation, reportez-vous à cet article qui explique comment configurer le débogage MSI. Ou, pour des informations moins importantes mais toujours précieuses, celle- ci comment activer la journalisation.
la source
Le programme d'installation de Windows présente de nombreux avantages importants pour le déploiement en entreprise , dont certains que j'ai décrits ici: /server//a/274609/20599
Une grande partie de la lenteur d'une session Windows Installer est due à ses capacités de restauration . Tout d'abord, il crée un point de restauration avant l'installation ou la désinstallation (à condition que la restauration du système n'ait pas été désactivée). Ensuite, il sauvegardera tous les fichiers concernés lors de la désinstallation et de l'installation pour garantir que le système peut être restauré à son état d'origine en cas d'erreur.
Un autre facteur contributif est que tous les composants du MSI seront enregistrés dans le registre . Cela implique des frais généraux .
Pour les fichiers MSI compilés, un certain temps est également nécessaire pour extraire les fichiers d'installation .
Consultez cette réponse pour obtenir des détails techniques sur l'accélération des installations MSI .
la source
Les programmes d'installation de Windows sont si couramment utilisés pour de nombreuses raisons - intégration du système d'exploitation, politiques de sécurité, installations sans assistance et bien plus encore.
La raison la plus courante à laquelle je peux penser est les installations sans assistance et les distributions de réseau. Les grandes entreprises peuvent facilement distribuer des applications, en ayant le fichier .MSI sur un lecteur réseau, puis en appelant simplement un fichier batch (ou une application d'assistant de distribution) sur une machine distante pour automatiser le processus d'installation.
Bien que d'autres options existent en dehors des fichiers .MSI, il existe des fonctionnalités uniques qui s'intègrent à la plupart des versions de Windows que de nombreux autres installateurs n'ont pas.
Et juste pour que vous le sachiez - InstallShield n'est pas toujours un frontal pour les fichiers MSI. Ils ont également leur propre solution d'installation propriétaire.
la source