¿Por qué no puedes desinstalar varios programas a la vez en Windows?

99

¿Por qué Windows no le permite desinstalar o eliminar múltiples programas a la vez? ¿Cuál es el razonamiento detrás de esto? ¿Arruinará un sistema interno?

No estoy buscando cómo desinstalar varios programas a la vez, simplemente estoy buscando una razón por la cual no sería una opción.

Jeroen Bollen
fuente
99
Para evitar que la gente desinstale todo de una vez ... tal vez.
M.Bennett
@ M.Bennett Yo también estaba pensando eso, pero no hay una manera de seleccionar varios programas, por lo que los usuarios no pueden desinstalar todo por accidente de todos modos.
Jeroen Bollen
55
En realidad, puede eliminar varios programas a la vez, es el único instalador de Windows que le impide desinstalar múltiples programas, eso es porque solo permite una sola instancia de sí mismo. Suficientemente fácil para eliminar los archivos de un programa, puede eliminar todo el contenido de los Archivos de programa si lo desea, lo que desinstalará esos programas de manera no efectiva.
Ramhound
@Ramhound: Parece ser el único aquí que entendió correctamente la intención del autor de la pregunta: quiere que el sistema desinstale los programas en secuencia . Los que respondieron aquí entendieron su pregunta de manera diferente: si es posible desinstalar simultáneamente varios programas. No hace falta decir que en Linux es fácilmente posible: simplemente escribe apt-get -y uninstall prog1 prog2 prog3.
Niccolo M.
44
@NiccoloM Mi pregunta era en realidad por qué no puedes simultáneamente. : P
Jeroen Bollen

Respuestas:

101

Si lees algo sobre cómo funciona el sistema instalador de Windows, es obvio que aplicaron algunas ideas de bases de datos transaccionales para la instalación y el mantenimiento del programa, sin mencionar que los .msiarchivos en sí son una base de datos.

Siempre existe la pregunta en el diseño de cualquier base de datos: ¿desea velocidad o precisión / seguridad? Dado que los instaladores pueden modificar la configuración del sistema y que un error podría hacer que el sistema no funcione, se le ha dado prioridad a la seguridad sobre la velocidad. Una de las razones por las cuales los .msiinstaladores son tan lentos es porque los archivos de reversión se crean para cada archivo, etc., que se modificarán y luego se eliminarán, lo que permite que los cambios se "reviertan" si algo sale mal en medio de las cosas ( como un corte de energía o un bloqueo del sistema).

Ahora, creo que el propio motor MSI exige la instalación, modificación o eliminación de un solo programa a la vez; si intenta ejecutarlo .msimientras otro desinstala, por ejemplo, no se ejecutará o esperará la desinstalación que se está ejecutando actualmente. para terminar. Los instaladores que no son MSI pueden no comportarse de esta manera, ya que no usan el motor MSI. Pero debido a esta decisión de diseño de seguridad, esta es probablemente la razón por la que appwiz.cplinsiste en que solo se llame a un desinstalador a la vez.

CCleaner le permite iniciar desinstaladores sin esperar a que finalicen los que se estaban ejecutando anteriormente. Los instaladores de MSI probablemente todavía no funcionen en paralelo debido a lo anterior.

LawrenceC
fuente
29
Una cosa a tener en cuenta es que los administradores de paquetes en sistemas similares a Unix tampoco intentarán eliminar varios paquetes a la vez por la misma razón. Si elimina varios paquetes, se eliminan uno tras otro, posiblemente cada uno en su propia transacción.
Joey
+1 ¡Excelente respuesta! Una cosa a tener en cuenta. Si tiene un montón de ejecutables independientes, como CPU-Z, en una carpeta, no dude en desinstalarlos (eliminarlos) de una vez.
MonkeyZeus
44
@Joey Esto es cierto, pero al menos puede indicar a los administradores de paquetes * nix que lo hagan y resolverán el pedido. Creo que el problema más grande es que Windows no entiende el concepto de dependencia a nivel de administración de paquetes.
Tudor
44
@tudor: Creo que es solo una diferencia en cómo se administran las aplicaciones en los diferentes sistemas operativos. Windows administra aplicaciones , mientras que en Unix-like los administradores de paquetes administran, bueno, paquetes , que pueden ser bibliotecas, aplicaciones y cosas similares. Windows puede administrar tales cosas (lo hace internamente, por ejemplo, cuando habilita o deshabilita los componentes de Windows), pero tener bibliotecas de terceros en todo el sistema no funcionó tan bien a fines de los 90, por lo que se recomienda que las aplicaciones solo agrupar todas sus dependencias.
Joey
@Joey, entiendo tu punto, pero culpar al usuario (o desarrollador) no va a llegar lejos en un espacio compartido tan abierto. Los usuarios solo ven las aplicaciones, pero las aplicaciones son solo un subconjunto de paquetes. Múltiples bibliotecas, incluso con diferentes versiones y proveedores, solo necesitan ser administradas . Requerir que el desarrollador lo gestione fue optimista en el mejor de los casos, en mi humilde opinión, y resultó en una gran hinchazón. Windows Store hace algunos avances en esto, pero todavía está muy lejos de la resolución de dependencia automática, lo que hace que * nixes sea mucho más simple a este respecto.
Tudor
19

Esto solo se aplica realmente a los programas que usan el sistema Windows Installer .

Si un programa usa sus propios sistemas (no) de instalación, no hay nada que le impida ejecutar otro desinstalador al mismo tiempo.

Windows Installer limita el número de instancias para evitar conflictos por parte de múltiples programas mientras cambian la configuración y los archivos de todo el sistema (a menudo compartidos).

La mayoría de los desinstaladores rastrean lo que están cambiando para que puedan retroceder con éxito si hay una falla. Si uno no está al tanto de todos los cambios realizados (por otros desinstaladores), entonces puede empeorar las cosas si intenta deshacer una instalación fallida.

El sistema Windows Installer se creó con la intención de ser un sistema unificado para que todos los desarrolladores de aplicaciones lo utilicen (en Windows), para ayudar a evitar problemas como estos.

Ƭᴇcʜιᴇ007
fuente
9

Las tareas de desinstalación frecuentemente modifican archivos que son compartidos por múltiples programas, o archivos del sistema \ el Registro (una razón parcial para necesitar poder administrativo para hacerlo). Si se ejecutaran varias tareas de desinstalación al mismo tiempo, podrían entrar en conflicto. Si alguna vez te has topado con "DLL Hell", sería lo mismo. Otros programas o el propio Windows podrían quedar en un estado inconsistente.

KA
fuente
De esto se trata la respuesta correcta. Si el programa "A" instala la DLL de Windows "X" no central, entonces el programa "B" lo requiere en su instalador, entonces probablemente también será parte del desinstalador. Pero desinstalar DLL "X" rompería el programa "A". Por lo tanto, el desinstalador generalmente preguntará acerca de las DLL compartidas y otros archivos SI deben eliminarse. Si se ejecuta al mismo tiempo, este tipo de mensaje no podría funcionar correctamente. Por último, y quizás lo más importante, todos han olvidado el Registro de Windows, que es un componente central de base de datos que se actualiza con frecuencia en los instaladores / desinstaladores.
Darrell Teague
-1

Desinstalar programas simultáneamente, además de tener los posibles problemas mencionados anteriormente, tiene muy pocos beneficios: no será mucho más rápido que desinstalar los programas secuencialmente. Desinstalar un programa es una tarea que involucra disco IO. Ejecutar varios programas que hacen IO no es más rápido que ejecutarlos secuencialmente (a menos que los programas estén instalados en dos discos físicos separados). De hecho, es probable que sea más lento porque las dos tareas de E / S en competencia harán que la memoria caché del disco sea menos eficiente y los cabezales físicos del disco tendrán que saltar de un lugar a otro.

Niccolo M.
fuente
Esto es irrelevante como respuesta. Todo lo relacionado con la E / S de disco tiene el potencial de reducir la velocidad si hace demasiadas cosas a la vez, pero lo único que Windows realmente le impide hacer es la instalación (des) simultánea. Y hay una buena razón para querer poder realizar (des) instalaciones simultáneas: sería mucho más fácil para los usuarios poner en cola un montón de operaciones y dejar que todos corran juntos, en lugar de tener que sentarse y esperar para que cada uno complete a su vez. Además, el problema de contención es obsoleto con los SSD.
Andrew Medico