Perché non riesci a disinstallare più programmi contemporaneamente in Windows?


99

Perché Windows non ti consente di disinstallare o rimuovere più programmi contemporaneamente? Qual è il ragionamento alla base di questo? Distruggerà un sistema interno?

Non sto cercando come disinstallare più programmi contemporaneamente, sto semplicemente cercando un motivo per cui non sarebbe un'opzione.


9
Per impedire alle persone di disinstallare tutto in una volta ... forse.
M.Bennett,

@M.Bennett Lo stavo pensando anch'io, ma non esiste un modo per selezionare più programmi, quindi gli utenti non possono disinstallare tutto per caso.
Jeroen Bollen,

5
In realtà puoi rimuovere più programmi contemporaneamente, il suo unico Windows Installer che ti impedisce di disinstallare più programmi, questo perché consente solo una singola istanza di se stesso. Abbastanza facile da eliminare i file di un programma, è possibile eliminare tutto il contenuto dei file di programma, se lo si desidera, che disinstallerà tali programmi in modo non efficace.
Ramhound,

@Ramhound: sembra che tu sia l'unico qui a comprendere correttamente l'intenzione del richiedente: vuole che il sistema disinstalli i programmi in sequenza . I rispondenti qui hanno capito la sua domanda in modo diverso: se è possibile disinstallare contemporaneamente diversi programmi. Inutile dire che in Linux è facilmente possibile: basta digitare apt-get -y uninstall prog1 prog2 prog3.
Niccolò M.

4
@NiccoloM La mia domanda era in realtà il motivo per cui non è possibile contemporaneamente. : P
Jeroen Bollen,

Risposte:


101

Se leggi qualcosa su come funziona il sistema di installazione di Windows, è ovvio che hanno applicato alcune idee dai database transazionali al programma di installazione e manutenzione, per non parlare dei .msifile stessi sono un database.

C'è sempre la domanda nella progettazione di qualsiasi database: vuoi velocità, accuratezza / sicurezza? Dato che gli installatori possono modificare la configurazione del sistema e che un incidente potrebbe rendere il sistema inutilizzabile, la sicurezza ha avuto la precedenza sulla velocità. Uno dei motivi per cui gli .msiinstallatori sono così lenti è perché vengono creati i file di rollback per ogni file, ecc. Che verranno modificati e successivamente eliminati, consentendo di "ripristinare" eventuali modifiche nel caso in cui qualcosa vada storto nel mezzo delle cose ( come un'interruzione di corrente o un arresto anomalo del sistema).

Ora, credo che il motore MSI stesso imponga l'installazione, la modifica o la rimozione di un solo programma alla volta - se si tenta di eseguire un .msialtro mentre si sta disinstallando, ad esempio, non funzionerà o attenderà la disinstallazione attualmente in esecuzione finire. I programmi di installazione non MSI potrebbero non comportarsi in questo modo, poiché non utilizzano il motore MSI. Ma a causa di questa decisione di progettazione della sicurezza, questo è probabilmente il motivo per cui appwiz.cplinsiste affinché sia ​​possibile chiamare un solo programma di disinstallazione alla volta.

CCleaner consente di avviare i programmi di disinstallazione senza attendere il completamento di quelli precedentemente in esecuzione. Probabilmente gli installer MSI non funzioneranno in parallelo a causa di quanto sopra.


29
Una cosa da notare è che anche i gestori di pacchetti su sistemi simili a Unix non tenteranno di rimuovere più pacchetti contemporaneamente per lo stesso motivo. Se rimuovi più pacchetti, questi vengono rimossi uno dopo l'altro, possibilmente ciascuno nella propria transazione.
Joey,

+1 Risposta superba! Una cosa da notare. Se hai un sacco di eseguibili standalone, come CPU-Z, in una cartella, sentiti libero di disinstallarli (eliminarli) tutti in una volta.
MonkeyZeus

4
@Joey Questo è vero, ma puoi almeno istruire i gestori di pacchetti * nix a farlo e loro elaboreranno l'ordine. Penso che il problema maggiore sia che Windows non comprende il concetto di dipendenza a livello di gestione dei pacchetti.
Tudor

4
@tudor: penso che sia solo una differenza nel modo in cui le applicazioni sono gestite sui diversi sistemi operativi. Windows gestisce le applicazioni , mentre i gestori di pacchetti simili a Unix gestiscono anche i pacchetti , che possono essere librerie, applicazioni e cose simili. Windows può gestire tali cose (lo fa internamente, ad esempio quando si abilitano o disabilitano i componenti di Windows), ma avere librerie di terze parti a livello di sistema non è andato così bene alla fine degli anni '90, quindi le applicazioni sono incoraggiate a raggruppare tutte le loro dipendenze.
Joey,

@Joey Prendo il tuo punto, ma incolpare l'utente (o lo sviluppatore) non andrà lontano in uno spazio condiviso così aperto. Gli utenti vedono solo le applicazioni, ma le applicazioni sono solo un sottoinsieme di pacchetti. Più librerie, anche con versioni e fornitori diversi, devono solo essere gestite . Richiedere allo sviluppatore di gestirlo era nella migliore delle ipotesi ottimista, IMHO, e si traduceva in un forte gonfiore. Windows Store fa qualche passo avanti in questo, ma è ancora molto lontano dalla risoluzione automagica della dipendenza, che rende * nix molto più semplici in questo senso.
tudor

19

Questo vale solo per i programmi che utilizzano il sistema Windows Installer .

Se un programma utilizza i propri sistemi (non) di installazione, non c'è nulla che ti impedisca di eseguire un altro programma di disinstallazione contemporaneamente.

Windows Installer limita il numero di istanze per evitare conflitti tra più programmi mentre stanno modificando impostazioni e file a livello di sistema (spesso condivisi).

La maggior parte dei programmi di disinstallazione tiene traccia di ciò che stanno cambiando in modo da poter eseguire correttamente il rollback in caso di errore. Se uno non è a conoscenza di tutte le modifiche apportate (da altri programmi di disinstallazione), potrebbe effettivamente fare PEGGIORE se tenta di ripristinare un'installazione non riuscita.

Il sistema Windows Installer è stato creato con l'intenzione di essere un sistema unificato che tutti gli sviluppatori di applicazioni possono utilizzare (su Windows) per evitare problemi come questi.


9

Le attività di disinstallazione modificano frequentemente i file condivisi da più programmi o i file di sistema \ Registro (un motivo parziale per cui è necessario il potere amministrativo per farlo). Se più attività di disinstallazione sono state eseguite contemporaneamente, potrebbero entrare in conflitto. Se ti sei mai imbattuto con "DLL Hell", sarebbe lo stesso. Altri programmi o Windows stesso potrebbero essere lasciati in uno stato incoerente.


Questa è la maggior parte della risposta giusta. Se il programma "A" installa DLL di Windows non core "X", il programma "B" lo richiede nel suo programma di installazione, quindi probabilmente farà parte anche del programma di disinstallazione. Ma la disinstallazione della DLL "X" interromperebbe il programma "A". Pertanto, il programma di disinstallazione richiede in genere informazioni su DLL condivise e altri file SE devono essere eliminati. Se eseguito contemporaneamente, questo tipo di prompt potrebbe non funzionare correttamente. Infine, e forse ancora più importante, tutti hanno dimenticato il registro di Windows, che è un componente di base del database che viene frequentemente aggiornato in programmi di installazione / disinstallazione.
Darrell Teague,

-1

La disinstallazione dei programmi contemporaneamente, oltre a presentare i potenziali problemi menzionati, ha pochissimi benefici: non sarà molto più veloce della disinstallazione sequenziale dei programmi. La disinstallazione di un programma è un'attività che coinvolge l'IO del disco. L'esecuzione di diversi programmi che eseguono operazioni di I / O non è più veloce di eseguirli in sequenza (a meno che i programmi non siano installati su due dischi fisici separati). In effetti, è probabile che sia più lento perché i due compiti IO concorrenti renderanno la cache del disco meno efficiente e le testine fisiche del disco dovranno saltare da un posto all'altro.


Ciò è irrilevante come risposta. Tutto ciò che riguarda l'I / O del disco ha il potenziale per rallentare se fai troppe cose contemporaneamente, ma l'unica cosa che Windows ti impedisce davvero di fare sono le installazioni (dis) simultanee. E c'è una buona ragione per voler essere in grado di eseguire (dis) installazioni simultanee: sarebbe molto più facile per gli utenti essere in grado di mettere in coda un mucchio di operazioni e farle correre tutte insieme, invece di dover sedere e aspettare per ognuno da completare a sua volta. Inoltre, il problema della contesa è obsoleto con gli SSD.
Andrew Medico
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.