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


Pourquoi Windows ne vous permet-il pas de désinstaller ou de supprimer plusieurs programmes à la fois? Quel est le raisonnement derrière cela? Est-ce que ça va 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.


95
2018-03-19 15:31


origine


Pour empêcher les gens de désinstaller tout à la fois ... peut-être. - M.Bennett
@ M.Bennett Je pensais aussi à cela, mais il n'y a pas moyen de sélectionner plusieurs programmes pour que les utilisateurs ne puissent pas vraiment tout désinstaller par accident. - Jeroen Bollen
En fait, vous pouvez supprimer plusieurs programmes à la fois, son seul Windows Installer qui vous empêche de désinstaller plusieurs programmes, car il ne permet qu'une seule instance de lui-même. Assez facile pour supprimer un fichier de programme, vous pouvez supprimer tout le contenu de Program Files si vous le souhaitez, ce qui désinstallera ces programmes simplement pas efficacement. - Ramhound
@Ramhound: Vous semblez être le seul à comprendre correctement l'intention du demandeur: il veut que le système désinstalle les programmes dans  séquence. Les répondeurs ont compris différemment sa question: est-il possible de simultanément désinstaller plusieurs programmes. Inutile de dire que sous Linux, il est facilement possible: vous tapez simplement apt-get -y uninstall prog1 prog2 prog3. - Niccolo M.
@NiccoloM Ma question était en fait pourquoi vous ne pouvez pas simultanément. : P - Jeroen Bollen


Réponses:


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

Il y a toujours la question dans la conception de toute base de données - voulez-vous la vitesse ou la précision / la sécurité? Étant donné que les installateurs peuvent modifier la configuration du système et qu'un incident peut rendre le système inutilisable, la sécurité a été privilégiée par rapport à la vitesse. Une des raisons pour lesquelles .msi les installateurs sont si lents parce que des fichiers de restauration sont créés pour chaque fichier, etc., qui seront modifiés, puis supprimés - permettant de "restaurer" les modifications en cas de problème (par exemple, coupure de courant ou crash du système).

Maintenant, je crois que le moteur MSI lui-même impose l’installation, la modification ou la suppression d’un seul programme à la fois - si vous essayez d’exécuter un programme .msi pendant qu'un autre désinstalle, par exemple, il ne s'exécutera pas ou attendra la fin de la désinstallation en cours. Les programmes d'installation non-MSI peuvent ne pas se comporter de cette façon, car ils n'utilisent pas le moteur MSI. Mais à cause de cette décision de conception de sécurité, c'est probablement la raison pour laquelle appwiz.cpl insiste pour ne 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 exécutions précédentes. Les installateurs MSI ne fonctionneront probablement toujours pas en parallèle en raison de ce qui précède.


100
2018-03-19 15:49



Une chose à noter est que les gestionnaires de paquets sur les systèmes de type Unix n'essaieront pas non plus de supprimer plusieurs paquets à la fois pour la même raison. Si vous supprimez plusieurs packages, ils sont supprimés les uns après les autres, éventuellement chacun dans leur propre transaction. - Joey
+1 Superbe réponse! Une chose à noter. Si vous avez un tas d'exécutables autonomes, comme CPU-Z, dans un dossier, alors n'hésitez pas à les désinstaller (supprimer) tous en même temps. - MonkeyZeus
@Joey C'est vrai, mais vous pouvez au moins indiquer aux gestionnaires de paquets * nix de le faire et ils vont régler la commande. 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
@tudor: Je pense que c'est juste une différence dans la façon dont les applications sont gérées sur les différents systèmes d'exploitation. Windows gère applications, alors que sur Unix-likes, les gestionnaires de paquets gèrent bien, paquets, qui peuvent être des bibliothèques, des applications et des choses similaires. les fenêtres pouvez gérer de telles choses (il le fait en interne à coup sûr, par exemple lorsque vous activez ou désactivez des composants Windows), mais avoir des bibliothèques tierces au niveau du système n’a pas si bien fonctionné à la fin des années 90; leurs dépendances. - Joey
@Joey je prends votre point, mais blâmer l'utilisateur (ou développeur) ne va pas aller loin dans un tel espace partagé 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é. Obliger le développeur à le gérer était au mieux optimiste, à mon humble avis, et entraînait de lourdes ballonnements. Windows Store fait des progrès dans ce domaine, mais il est encore loin de la résolution des dépendances automagiques, ce qui rend les * nixes beaucoup plus simples à cet égard. - tudor


Cela s'applique uniquement aux programmes qui utilisent le Windows Installer système.

Si un programme utilise ses propres systèmes (de désinstallation), 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 des conflits ne soient générés par plusieurs programmes alors qu’ils modifient les paramètres et les fichiers au niveau du système (souvent partagé).

La plupart des programmes de désinstallation suivent ce qu’ils modifient pour pouvoir les restaurer en cas d’échec. Si quelqu'un n'est pas au courant de toutes les modifications apportées (par d'autres programmes de désinstallation), il peut en fait produire des erreurs s'il tente de restaurer 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) pour éviter de tels problèmes.


19
2018-03-19 15:40





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


9
2018-03-19 15:40



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


La désinstallation simultanée des programmes, en plus des problèmes potentiels mentionnés ci-dessus, est très peu bénéfique: elle ne sera pas beaucoup plus rapide que la désinstallation séquentielle des programmes. La désactivation d'un programme est une tâche impliquant le disque IO. L'exécution de plusieurs programmes exécutant 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, il est susceptible d'être plus lent Les deux tâches d'E / S concurrentes réduiront l'efficacité du cache disque et les têtes physiques du disque devront sauter d'un endroit à l'autre.


-1
2018-03-20 19:33



Ceci n'est pas pertinent en tant que réponse. Tout ce qui concerne les E / S disque a le potentiel de ralentir si vous faites trop de choses à la fois, mais la seule chose que Windows a vraiment empêche vous faites des installations simultanées. Et il y a une bonne raison de vouloir effectuer des (dés) installations simultanées - il serait beaucoup plus facile pour les utilisateurs de mettre en file d'attente un grand nombre d'opérations et de les laisser tous fonctionner ensemble, plutôt que de s'asseoir et d'attendre pour chacun de compléter à tour de rôle. En outre, le problème de conflit est obsolète avec les disques SSD. - Andrew Medico