Por que o Windows não permite desinstalar ou remover vários programas ao mesmo tempo? Qual é o raciocínio por trás disso? Será que vai atrapalhar um sistema interno?
Não estou procurando como desinstalar vários programas ao mesmo tempo, estou simplesmente procurando uma razão pela qual não seria uma opção.
apt-get -y uninstall prog1 prog2 prog3
.Respostas:
Se você ler algo sobre como o sistema instalador do Windows funciona, é óbvio que eles aplicaram algumas idéias de bancos de dados transacionais para programar a instalação e manutenção, sem mencionar que os
.msi
próprios arquivos são um banco de dados.Sempre existe a pergunta no design de qualquer banco de dados - você quer velocidade ou precisão / segurança? Dado que os instaladores podem modificar a configuração do sistema e que um acidente pode tornar o sistema inoperante, a segurança recebe prioridade sobre a velocidade. Um dos motivos pelos quais os
.msi
instaladores são tão lentos é porque os arquivos de reversão são criados para cada arquivo etc. que serão modificados e excluídos posteriormente - permitindo que as alterações sejam "revertidas" se algo der errado no meio das coisas ( como falta de energia ou falha no sistema).Agora, acredito que o mecanismo MSI impõe a instalação, modificação ou remoção de apenas um programa por vez - se você tentar executar um
.msi
enquanto outro está desinstalando, por exemplo, ele não será executado ou aguardará a desinstalação atualmente em execução terminar. Os instaladores não MSI podem não se comportar dessa maneira - pois eles não usam o mecanismo MSI. Mas, devido a essa decisão de design de segurança, é provavelmente por isso queappwiz.cpl
insiste apenas em permitir que um desinstalador seja chamado de uma só vez.O CCleaner permite que você inicie desinstaladores sem esperar pela conclusão dos que estão sendo executados anteriormente. Os instaladores do MSI provavelmente ainda não funcionarão em paralelo devido ao acima.
fonte
Isso realmente se aplica apenas a programas que usam o sistema Windows Installer .
Se um programa usa seus próprios sistemas (des) instaladores, nada impede que você execute outro desinstalador ao mesmo tempo.
O Windows Installer limita o número de instâncias para evitar conflitos por vários programas enquanto eles estão alterando configurações e arquivos do sistema (geralmente compartilhados).
A maioria dos desinstaladores controla o que está mudando, para que possam reverter com êxito se houver uma falha. Se alguém não estiver ciente de todas as alterações que estão sendo feitas (por outros desinstaladores), poderá realmente piorar as coisas se tentar reverter uma instalação com falha.
O sistema Windows Installer foi criado com a intenção de ser um sistema unificado para uso de todos os desenvolvedores de aplicativos (no Windows), para ajudar a evitar problemas como esses.
fonte
As tarefas de desinstalação freqüentemente modificam os arquivos compartilhados por vários programas ou arquivos de sistema \ the Registry (um motivo parcial para a necessidade de poder administrativo para fazê-lo). Se várias tarefas de desinstalação forem executadas ao mesmo tempo, elas poderão entrar em conflito. Se você já se deparou com "DLL Hell", seria o mesmo. Outros programas ou o próprio Windows podem ser deixados em um estado inconsistente.
fonte
Desinstalar programas simultaneamente, além de ter os possíveis problemas mencionados, tem muito pouco benefício: não será muito mais rápido que desinstalar os programas sequencialmente. Desinstalar um programa é uma tarefa que envolve E / S de disco. A execução de vários programas que executam E / S não é mais rápida do que executá-los sequencialmente (a menos que os programas estejam instalados em dois discos físicos separados). De fato, é provável que seja mais lento porque as duas tarefas de E / S concorrentes tornarão o cache do disco menos eficiente e as cabeças físicas do disco precisarão pular de um lugar para outro.
fonte