¿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.
apt-get -y uninstall prog1 prog2 prog3
.Respuestas:
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
.msi
archivos 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
.msi
instaladores 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
.msi
mientras 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 queappwiz.cpl
insiste 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.
fuente
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.
fuente
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.
fuente
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.
fuente