Desde os dias do Windows XP, os Windows Installers (arquivos .msi), incluindo os instaladores do InstallShield (que é apenas uma inicialização para o MSI), demoraram cerca de cinco vezes mais para desinstalar um aplicativo do que outros instaladores. O mesmo também é geralmente verdade sobre a instalação.
Por que eles ainda demoram tanto tempo e por que as pessoas ainda usam o MSI para instalar? Por exemplo:
Desinstalar o VLC - leva cerca de 5 segundos.
Desinstalar XYZ - inicia "Preparando para remover ..." seguido de um atraso de 15 segundos.
Tudo o que está fazendo é remover arquivos e limpar o registro (que pode incluir registros COM), então por que demora tanto?
windows
uninstall
installer
windows-installer
Chris S
fonte
fonte
Do you want to allow the following program from an unknown publisher to make changes to this computer?
estava escondido em segundo plano.Respostas:
O instalador do Windows primeiro cria sistematicamente um ponto de restauração do sistema, que é uma operação bastante lenta.
Também do artigo intitulado, apropriadamente, "O Windows Installer é uma merda" , um trecho:
Acrescento também que o instalador do Windows mantém todas as informações no registro, que não é o banco de dados mais rápido do mundo.
fonte
dpkg
usado para o banco de dados do pacote (embora, reconhecidamente, o dpkg não armazene tudo nele):/var/lib/dpkg/status
é um arquivo de texto simples que lista todos os pacotes que foram instalados uma vez e que não foram removidos - e eu nem tenho certeza se ele sempre omite os eliminados.dpkg
não minta para mim com barras de progresso que dizer "Tempo restante: 0 segundos" durante dois minutos, embora ...O Windows Installer realmente tem uma reputação de ser lento. Existem algumas coisas que contribuem para isso e vou abordá-las abaixo. Mas, em última análise, deve-se perguntar se um, dois ou três minutos é realmente uma questão de disputa ao instalar e desinstalar o software. Levo mais tempo do que isso folheando os canais de TV :)
O registro
Este é o culpado número um. O Windows Installer faz uso pesado do registro para suas operações. À medida que o sistema amadurece, à medida que você instala e desinstala aplicativos e à medida que o registro aumenta ou fica fragmentado, o MSI fica mais lento. O mesmo aplicativo instalará e desinstalará muito mais rapidamente em uma instalação intocada do Windows, do que em um sistema amadurecido. A solução aqui é tentar manter o registro limpo e desfragmentado.
Para limpeza do registro, use uma das muitas ferramentas disponíveis no mercado. Mas para desfragmentar o registro, não posso recomendar NTREGOPT suficiente para otimização de seção interna e PageDefrag para desfragmentação física de arquivos.
A razão pela qual as operações MSI podem ficar lentas no registro tem a ver com a maneira como o MSI as usa. O Windows Installer usa o registro para rastrear quais produtos instalaram quais componentes e em que local foi instalado. Os GUIDs de instalação originais são usados em formato compactado. As informações por instalação sobre instalações podem ser encontradas em
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18
, enquanto os dados por usuário são encontrados ao ladoHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\
em uma chave inferior e superior com o SID do usuário.Ambas as chaves podem ser bastante grandes e contêm inúmeras subchaves e valores. Eles controlam produtos, componentes e caminhos-chave de cada aplicativo instalado. Todas essas informações devem ser lidas e processadas para um procedimento de desinstalação correto. No entanto, o formato do registro lista as chaves em ordem alfabética, o que permite pesquisas binárias. Mas os valores não são. Eles são armazenados à medida que são criados, portanto, um procedimento de pesquisa linear deve ser executado. O que diminui o desempenho do algoritmo.
Em suma, o MSI é um método bastante completo e preciso para instalação e desinstalação de software. Mas sofre de sua dependência do registro. O sistema é excelente. É o registro do Windows que deveria ter sido revisado há muito tempo :)
Para obter informações mais avançadas:
Para uma análise aprofundada do que a MSI está fazendo durante cada procedimento de instalação ou desinstalação, consulte este artigo que explica como configurar a depuração do MSI. Ou, para informações menos valiosas, mas ainda valiosas, este é como ativar o log.
fonte
O instalador do Windows tem muitas grandes vantagens para a implantação corporativa , algumas das quais descrevi aqui: https://serverfault.com/a/274609/20599
Grande parte da lentidão de uma sessão do Windows Installer se deve a seus recursos de reversão . Primeiro, ele cria um ponto de restauração antes da instalação ou desinstalação (desde que a restauração do sistema não tenha sido desativada). Em seguida, ele fará backup de todos os arquivos afetados durante a desinstalação e a instalação para garantir que o sistema possa ser restaurado ao seu estado original caso ocorra um erro.
Outro fator que contribui é que todos os componentes no MSI serão registrados no registro . Isso envolve alguma sobrecarga .
Para arquivos MSI compilados, também é necessário algum tempo para extrair os arquivos de instalação .
Consulte esta resposta para obter detalhes técnicos para acelerar as instalações MSI .
fonte
Os instaladores do Windows são comumente usados por vários motivos - integração de sistemas operacionais, políticas de segurança, instalações autônomas e muito mais.
O motivo mais comum em que consigo pensar é nas instalações autônomas e nas distribuições de rede. As grandes corporações podem distribuir aplicativos facilmente, tendo o arquivo .MSI em uma unidade de rede e depois chamando um arquivo em lote (ou aplicativo do assistente de distribuição) em uma máquina remota para automatizar o processo de instalação.
Embora existam outras opções fora dos arquivos .MSI, existem alguns recursos exclusivos que se integram à maioria das versões do Windows que muitos outros instaladores não possuem.
E só para você saber - o InstallShield nem sempre é um front-end para arquivos MSI. Eles também têm sua própria solução de instalação proprietária.
fonte