Desde los días de Windows XP, los instaladores de Windows (archivos .msi), incluidos los instaladores InstallShield (que es solo un arranque para MSI) han tardado unas cinco veces más en desinstalar una aplicación que otros instaladores. Lo mismo también suele ser cierto sobre la instalación.
¿Por qué todavía tardan tanto y por qué la gente todavía usa MSI para la instalación? Por ejemplo:
Desinstalar VLC: toma alrededor de 5 segundos.
Desinstalar XYZ: inicia "Preparando para eliminar ..." seguido de un retraso de 15 segundos.
Todo lo que está haciendo es eliminar archivos y limpiar el registro (que puede incluir registros COM), entonces, ¿por qué tarda tanto?
windows
uninstall
installer
windows-installer
Chris S
fuente
fuente
Do you want to allow the following program from an unknown publisher to make changes to this computer?
se ocultaba en el fondo.Respuestas:
El instalador de Windows primero crea sistemáticamente un punto de restauración del sistema, que es una operación bastante lenta.
También del artículo titulado, apropiadamente, "Windows Installer apesta" , un extracto:
También agrego que el instalador de Windows mantiene toda la información en el registro, que no es la base de datos más rápida del mundo.
fuente
dpkg
usa para su base de datos de paquetes (aunque, ciertamente, dpkg no almacena todo en él):/var/lib/dpkg/status
es un archivo de texto plano que enumera todos los paquetes que se instalaron una vez, y que desde entonces no se han purgado, y yo Ni siquiera estoy seguro de que siempre omita los purgados.dpkg
sin embargo, no me miente con barras de progreso que dicen "Tiempo restante: 0 segundos" durante dos minutos ...Windows Installer tiene fama de ser lento. Hay algunas cosas que contribuyen a esto y las abordaré a continuación. Pero, en última instancia, uno debería preguntarse si uno, dos o tres minutos son realmente una cuestión de controversia al instalar y desinstalar software. Tomo más tiempo que eso hojeando canales de TV :)
El registro
Este es el culpable número uno. Windows Installer hace un uso intensivo del registro para sus operaciones. A medida que su sistema madure, a medida que instale y desinstale aplicaciones y que el registro crezca o se fragmente, MSI se volverá más lento. La misma aplicación se instalará y desinstalará mucho más rápido en una instalación inmaculada de Windows que en un sistema maduro. La solución aquí es intentar mantener el registro limpio y desfragmentado.
Para la limpieza del registro, use una de las muchas herramientas disponibles. Pero para la desfragmentación del registro, no puedo recomendar suficiente NTREGOPT para la optimización interna de la colmena y PageDefrag para la desfragmentación de archivos físicos.
La razón por la cual las operaciones de MSI pueden volverse lentas en el registro tiene que ver con cómo MSI lo usa. Windows Installer utiliza el registro para realizar un seguimiento de qué Productos han instalado qué Componentes y en qué Ubicación se instaló. Los GUID de instalación originales se utilizan en formato comprimido. La información por máquina sobre las instalaciones se puede encontrar en
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18
, mientras que los datos por usuario se encuentran junto a élHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\
en una clave debajo y en una clave con el SID del usuario.Ambas claves pueden ser bastante grandes y contienen numerosas subclaves y valores. Controlan los productos, componentes y KeyPaths de cada aplicación instalada. Toda esta información debe leerse y procesarse para un procedimiento de desinstalación correcto. Sin embargo, el formato de registro enumera las claves en orden alfabético, lo que permite búsquedas binarias. Pero los valores no son. Se almacenan a medida que se crean, por lo que se debe realizar un procedimiento de búsqueda lineal. Lo que ralentiza el rendimiento del algoritmo.
Con todo, MSI es un método bastante completo y preciso para la instalación y desinstalación de software. Pero sufre de su dependencia de registro. El sistema es excelente. Es el registro de Windows que debería haberse revisado hace mucho tiempo :)
Para obtener información más avanzada:
para un análisis profundo de lo que está haciendo MSI durante cada procedimiento de instalación o desinstalación, consulte este artículo que explica cómo configurar MSI Debug. O, para obtener menos pero aún información valiosa, esta es la forma de activar el registro.
fuente
El instalador de Windows tiene muchas ventajas importantes para la implementación corporativa , algunas de las cuales he descrito aquí: https://serverfault.com/a/274609/20599
Gran parte de la lentitud de una sesión de Windows Installer se debe a sus capacidades de reversión . En primer lugar, crea un punto de restauración antes de la instalación o desinstalación (siempre que la restauración del sistema no se haya deshabilitado). Luego, realizará una copia de seguridad de todos los archivos afectados durante la desinstalación y la instalación para garantizar que el sistema pueda restaurarse a su estado original en caso de que ocurra un error.
Otro factor que contribuye es que todos los componentes en el MSI se registrarán en el registro . Esto implica algunos gastos generales .
Para archivos MSI compilados también se necesita algo de tiempo para extraer los archivos de instalación .
Consulte esta respuesta para obtener detalles técnicos para acelerar las instalaciones de MSI .
fuente
Los instaladores de Windows se usan comúnmente por muchas razones: integración del sistema operativo, políticas de seguridad, instalaciones desatendidas y mucho más.
La razón más común en la que puedo pensar es en las instalaciones desatendidas y las distribuciones de red. Las grandes corporaciones pueden distribuir fácilmente aplicaciones, al tener el archivo .MSI en una unidad de red y luego simplemente llamando a un archivo por lotes (o aplicación de asistente de distribución) en una máquina remota para automatizar el proceso de instalación.
Si bien existen otras opciones fuera de los archivos .MSI, hay algunas características únicas que se integran con la mayoría de las versiones de Windows que muchos otros instaladores no tienen.
Y para que lo sepas, InstallShield no siempre es un front-end para los archivos MSI. También tienen su propia solución de instalación patentada.
fuente