Pourquoi ne pouvez-vous pas désinstaller plusieurs programmes à la fois sous Windows?

99

Pourquoi Windows ne vous permet-il pas de désinstaller ou de supprimer plusieurs programmes à la fois? Quel est le raisonnement derrière cela? Cela va-t-il gâcher un système interne?

Je ne cherche pas comment désinstaller plusieurs programmes à la fois, je cherche simplement une raison pour laquelle ce ne serait pas une option.

Jeroen Bollen
la source
9
Pour empêcher les gens de tout désinstaller en même temps ... peut-être.
M.Bennett
@ M. Bennett J'y pensais aussi, mais il n’existait pas de moyen de sélectionner plusieurs programmes afin que les utilisateurs ne puissent pas vraiment tout désinstaller par accident de toute façon.
Jeroen Bollen
5
En fait, vous pouvez supprimer plusieurs programmes à la fois, le seul Windows Installer qui vous empêche de désinstaller plusieurs programmes, car il ne permet qu’une seule instance. Assez facile à supprimer des fichiers de programmes, vous pouvez supprimer tout le contenu de Program Files si vous le souhaitez, cela désinstallera ces programmes tout simplement pas de manière efficace.
Ramhound
@Ramhound: Vous semblez être le seul ici à avoir bien compris l'intention du demandeur: il souhaite que le système désinstalle les programmes en séquence . Les personnes interrogées ici ont compris sa question différemment: est-il possible de désinstaller simultanément plusieurs programmes? Inutile de dire que sous Linux, cela est facilement possible: il vous suffit de taper apt-get -y uninstall prog1 prog2 prog3.
Niccolo M.
4
@NiccoloM Ma question était en fait pourquoi vous ne pouvez pas simultanément. : P
Jeroen Bollen

Réponses:

101

Si vous lisez quelque chose sur le fonctionnement du système d’installation Windows, il est évident qu’ils ont appliqué quelques idées de bases de données transactionnelles à l’installation et à la maintenance de programmes, sans compter que les .msifichiers eux-mêmes sont une base de données.

Il est toujours question de concevoir une base de données: voulez-vous de la vitesse, de la précision ou de la sécurité? Etant donné que les installateurs peuvent modifier la configuration du système et qu'un incident accidentel pourrait rendre le système inutilisable, la sécurité a été privilégiée par rapport à la vitesse. Une des raisons pour lesquelles les .msiinstallateurs sont si lents est que les fichiers de restauration sont créés pour chaque fichier, etc. comme une panne de courant ou une panne système).

Maintenant, je crois que le moteur MSI lui-même applique l’installation, la modification ou la suppression d’un programme à la fois. Si vous essayez d’exécuter un .msiautre programme pendant la désinstallation, par exemple, il ne fonctionnera pas ou attendra la désinstallation en cours. pour finir. Les installateurs non-MSI peuvent ne pas se comporter de cette manière, car ils n'utilisent pas le moteur MSI. Mais en raison de cette décision de conception de sécurité, c'est probablement la raison appwiz.cplpour laquelle il ne faut laisser qu'un seul programme de désinstallation être appelé à la fois.

CCleaner vous permet de lancer des programmes de désinstallation sans attendre la fin des programmes en cours d'exécution. En raison de ce qui précède, les installateurs MSI ne fonctionneront probablement toujours pas en parallèle.

LawrenceC
la source
29
Une chose à noter est que les gestionnaires de paquets sur les systèmes de type Unix n'essayeront pas non plus de supprimer plusieurs paquets à la fois pour la même raison. Si vous supprimez plusieurs packages, ils sont supprimés l'un après l'autre, éventuellement dans leur propre transaction.
Joey
+1 Superbe réponse! Une chose à noter. Si vous avez plusieurs exécutables autonomes, tels que CPU-Z, dans un dossier, n'hésitez pas à les désinstaller (supprimer) tous en même temps.
MonkeyZeus
4
@ Joey C'est vrai, mais vous pouvez au moins demander aux gestionnaires de paquets * nix de le faire et ils travailleront avec l'ordre. Je pense que le plus gros problème est que Windows ne comprend pas le concept de dépendance au niveau de la gestion des packages.
Tudor
4
@tudor: Je pense que c'est simplement une différence dans la gestion des applications sur les différents systèmes d'exploitation. Windows gère les applications , tandis que, sur Unix, les gestionnaires de paquets gèrent bien les paquets , qui peuvent être des bibliothèques, des applications, etc. Windows peut gérer ce type de choses (il le fait certainement en interne, par exemple, lorsque vous activez ou désactivez des composants Windows), mais le fait d'avoir des bibliothèques tierces sur l'ensemble du système n'a pas été aussi efficace à la fin des années 90, aussi les applications sont-elles encouragées. regrouper toutes leurs dépendances.
Joey
@ Joey, je comprends ce que vous dites, mais blâmer l'utilisateur (ou le développeur) ne va pas aller trop loin dans un espace partagé aussi ouvert. Les utilisateurs ne voient que les applications, mais les applications ne sont qu'un sous-ensemble de packages. Plusieurs bibliothèques, même avec des versions et des fournisseurs différents, doivent simplement être gérées . Demander au développeur de le gérer était au mieux optimiste, à mon humble avis, et se traduisait par une lourde charge. Windows Store y parvient, mais la résolution de la dépendance automagique est encore loin d'être résolue, ce qui simplifie beaucoup les * nix à cet égard.
Tudor
19

Cela ne s'applique vraiment qu'aux programmes qui utilisent le système Windows Installer .

Si un programme utilise ses propres systèmes (non) d'installation, rien ne vous empêche d'exécuter un autre programme de désinstallation en même temps.

Windows Installer limite le nombre d'instances afin d'éviter que plusieurs programmes ne créent des conflits lors de la modification de paramètres et de fichiers à l'échelle du système (souvent partagés).

La plupart des programmes de désinstallation suivent ce qu'ils modifient afin de pouvoir effectuer une restauration en cas d'échec. Si vous ne connaissez pas toutes les modifications apportées (par d'autres programmes de désinstallation), vous risquez de vous tromper si vous essayez d'annuler une installation ayant échoué.

Le système Windows Installer a été créé dans l’intention d’être un système unifié que tous les développeurs d’applications peuvent utiliser (sous Windows), afin d’éviter de tels problèmes.

Ƭᴇcʜιᴇ007
la source
9

Les tâches de désinstallation modifient fréquemment les fichiers partagés par plusieurs programmes ou les fichiers système \ le registre (une raison partielle justifiant le besoin de pouvoir administratif pour le faire). Si plusieurs tâches de désinstallation étaient exécutées simultanément, elles pourraient être en conflit. Si vous avez déjà eu une course avec "DLL Hell", ce serait la même chose. D'autres programmes ou Windows lui-même peuvent rester dans un état incohérent.

KA
la source
C’est en grande partie la bonne réponse. Si le programme "A" installe la DLL Windows non centrale "X", alors le programme "B" le requiert dans son programme d'installation, il fera probablement également partie du programme de désinstallation. Mais désinstaller DLL "X" interromprait le programme "A". Ainsi, le programme de désinstallation posera généralement des questions sur les DLL partagées et autres fichiers S'ils doivent être supprimés. Si exécuté simultanément, ce type d'invite pourrait ne pas fonctionner correctement. Enfin, et peut-être plus important encore, tout le monde a oublié le registre Windows, un composant essentiel à la base de données fréquemment mis à jour par les installateurs / désinstalleurs.
Darrell Teague
-1

Désinstaller des programmes simultanément, en plus des problèmes potentiels mentionnés ci-dessus, présente très peu d'avantages: il ne sera pas beaucoup plus rapide que de désinstaller les programmes de manière séquentielle. La non-intégration d'un programme est une tâche impliquant une entrée / sortie disque. L'exécution de plusieurs programmes IO n'est pas plus rapide que leur exécution séquentielle (à moins que les programmes ne soient installés sur deux disques physiques distincts). En fait, cela risque d'être plus lent, car les deux tâches d'E / S en concurrence rendront le cache de disque moins efficace et les têtes physiques du disque devront sauter d'un endroit à l'autre.

Niccolo M.
la source
Ceci n'est pas pertinent en tant que réponse. Tout ce qui concerne les E / S de disque est susceptible de ralentir si vous faites trop de choses en même temps, mais la seule chose que Windows vous empêche réellement de faire est l'installation (ou les désinstallations) simultanées. Et il y a une bonne raison de vouloir être capable de faire des (dés) installations simultanées - il serait beaucoup plus facile pour les utilisateurs de pouvoir mettre en file d'attente un tas d'opérations et de les laisser toutes fonctionner ensemble, plutôt que d'avoir à s'asseoir et à attendre pour chacun à remplir à tour de rôle. En outre, le problème de conflit est obsolète avec les SSD.
Andrew Medico