Warum können Sie in Windows nicht mehrere Programme gleichzeitig deinstallieren?

99

Warum können Sie mit Windows nicht mehrere Programme gleichzeitig deinstallieren oder entfernen? Was ist die Begründung dafür? Wird es ein internes System durcheinander bringen?

Ich suche nicht nach einer Möglichkeit, mehrere Programme gleichzeitig zu deinstallieren, sondern nur nach einem Grund, warum dies keine Option ist.

Jeroen Bollen
quelle
9
Damit die Leute nicht alles auf einmal deinstallieren ... vielleicht.
M. Bennett
@ M.Bennett Das habe ich auch gedacht, aber es gibt keine Möglichkeit, mehrere Programme auszuwählen, so dass Benutzer sowieso nicht alles aus Versehen wirklich deinstallieren können.
Jeroen Bollen
5
Tatsächlich können Sie mehrere Programme gleichzeitig entfernen. Dies ist der einzige Windows Installer, der verhindert, dass Sie mehrere Programme deinstallieren, da nur eine Instanz von sich selbst zulässig ist. Einfach genug, um eine Programmdatei zu löschen, können Sie den gesamten Inhalt der Programmdateien löschen, wenn Sie möchten, dass diese Programme einfach nicht effektiv deinstalliert werden.
Ramhound
@Ramhound: Sie scheinen der einzige hier zu sein , die richtig die Fragesteller hat die Absicht verstanden: er das System will die Programme deinstallieren in Folge . Die Antwortenden hier haben seine Frage unterschiedlich verstanden: ob es möglich ist, mehrere Programme gleichzeitig zu deinstallieren. Unnötig zu erwähnen, dass es unter Linux leicht möglich ist: Sie geben einfach etwas ein apt-get -y uninstall prog1 prog2 prog3.
Niccolo M.
4
@NiccoloM Meine Frage war eigentlich, warum man nicht gleichzeitig kann. : P
Jeroen Bollen

Antworten:

101

Wenn Sie etwas über die Funktionsweise des Windows-Installationsprogramms lesen, ist es offensichtlich, dass einige Ideen aus Transaktionsdatenbanken auf die Programminstallation und -wartung angewendet wurden, ganz zu schweigen davon, dass die .msiDateien selbst eine Datenbank sind.

Es ist immer die Frage beim Entwerfen einer Datenbank - möchten Sie Geschwindigkeit oder Genauigkeit / Sicherheit? Angesichts der Tatsache, dass Installateure die Systemkonfiguration ändern können und ein Missgeschick die Funktionsfähigkeit des Systems beeinträchtigen kann, hat die Sicherheit Vorrang vor der Geschwindigkeit. Einer der Gründe, warum .msiInstaller so langsam sind, ist, dass Rollback-Dateien für jede Datei usw. erstellt werden, die geändert und anschließend gelöscht werden. So können Änderungen zurückgesetzt werden, wenn mitten in der Sache etwas schief geht ( (z. B. Stromausfall oder Systemabsturz).

Ich glaube, die MSI-Engine selbst erzwingt jeweils nur das Installieren, Ändern oder Entfernen eines Programms. Wenn Sie beispielsweise versuchen, ein Programm auszuführen, .msiwährend ein anderes deinstalliert wird, wird es entweder nicht ausgeführt oder auf die aktuell ausgeführte Deinstallation gewartet beenden. Nicht-MSI-Installer verhalten sich möglicherweise nicht so, da sie die MSI-Engine nicht verwenden. Aufgrund dieser Entscheidung zum Sicherheitsentwurf besteht das wahrscheinlich darin, dass appwiz.cplnur ein Deinstallationsprogramm gleichzeitig aufgerufen wird.

Mit CCleaner können Sie Deinstallationsprogramme starten, ohne auf die Beendigung der zuvor ausgeführten warten zu müssen. MSI-Installer werden aus den oben genannten Gründen wahrscheinlich immer noch nicht parallel arbeiten.

LawrenceC
quelle
29
Zu beachten ist, dass Paketmanager auf Unix-ähnlichen Systemen aus dem gleichen Grund auch nicht versuchen, mehrere Pakete gleichzeitig zu entfernen. Wenn Sie mehrere Pakete entfernen, werden diese nacheinander entfernt, möglicherweise jeweils in einer eigenen Transaktion.
Joey
+1 Hervorragende Antwort! Eine Sache zu beachten. Wenn Sie eine Reihe eigenständiger ausführbarer Dateien wie CPU-Z in einem Ordner haben, können Sie sie jederzeit deinstallieren (löschen).
MonkeyZeus
4
@Joey Das ist wahr, aber Sie können * nix-Paketmanager zumindest anweisen, dies zu tun, und sie werden die Reihenfolge festlegen. Ich denke, das größere Problem ist, dass Windows das Konzept der Abhängigkeit auf Paketverwaltungsebene nicht versteht.
Tudor
4
@tudor: Ich denke, es ist nur ein Unterschied, wie Anwendungen auf den verschiedenen Betriebssystemen verwaltet werden. Windows verwaltet Anwendungen , während Unix- ähnliche Paketmanager Pakete verwalten. Dies können Bibliotheken, Anwendungen und ähnliche Dinge sein. Windows kann solche Dinge verwalten (dies geschieht sicher intern, z. B. beim Aktivieren oder Deaktivieren von Windows-Komponenten), aber die systemweite Verbreitung von Bibliotheken von Drittanbietern war Ende der 90er Jahre nicht so gut, weshalb Anwendungen dazu ermutigt werden, dies zu tun bündeln alle ihre Abhängigkeiten.
Joey
@Joey, ich nehme an, aber wenn man den Benutzer (oder Entwickler) beschuldigt , kommt man in einem so offenen gemeinsamen Raum nicht weit. Benutzer sehen nur Anwendungen, aber Anwendungen sind nur eine Teilmenge von Paketen. Es müssen nur mehrere Bibliotheken mit unterschiedlichen Versionen und Anbietern verwaltet werden . Es war bestenfalls optimistisch, den Entwickler zu verpflichten, es zu verwalten, und führte zu starker Aufblähung. Windows Store macht einige Fortschritte in diesem Bereich, aber es ist noch ein langer Weg von der automatischen Auflösung von Abhängigkeiten entfernt, was * Nixes in dieser Hinsicht so viel einfacher macht.
Tudor
19

Dies gilt nur für Programme, die das Windows Installer- System verwenden.

Wenn ein Programm eigene (Un-) Installationssysteme verwendet, hindert nichts Sie daran, gleichzeitig ein anderes Deinstallationsprogramm auszuführen.

Windows Installer beschränkt die Anzahl der Instanzen, um Konflikte zu vermeiden, die von mehreren Programmen beim Ändern systemweiter (häufig freigegebener) Einstellungen und Dateien verursacht werden.

Die meisten Deinstallationsprogramme verfolgen, was sie ändern, damit sie bei einem Fehler ein erfolgreiches Rollback durchführen können. Wenn man nicht weiß, dass alle Änderungen (von anderen Deinstallationsprogrammen) vorgenommen wurden, kann dies SCHLECHTER werden, wenn versucht wird, eine fehlgeschlagene Installation rückgängig zu machen.

Das Windows Installer-System wurde mit der Absicht erstellt, ein einheitliches System für alle Anwendungsentwickler zu sein (unter Windows), um Probleme wie diese zu vermeiden.

ƬᴇcƬᴇιʜ007
quelle
9

Bei Deinstallationstasks werden häufig Dateien geändert, die von mehreren Programmen oder Systemdateien \ der Registrierung gemeinsam genutzt werden (ein teilweiser Grund dafür, dass hierfür Administratorrechte erforderlich sind). Wenn mehrere Deinstallationsaufgaben gleichzeitig ausgeführt werden, kann dies zu Konflikten führen. Wenn Sie jemals mit "DLL Hell" reingelaufen wären, wäre es dasselbe. Andere Programme oder Windows selbst können in einem inkonsistenten Zustand belassen werden.

KA
quelle
Dies ist das Meiste, worum es bei der richtigen Antwort geht. Wenn das Programm "A" die nicht zum Kern gehörende Windows-DLL "X" installiert und das Programm "B" dies in seinem Installationsprogramm benötigt, wird es wahrscheinlich ebenfalls Teil des Deinstallationsprogramms sein. Das Deinstallieren der DLL "X" würde jedoch das Programm "A" beschädigen. Daher fragt das Deinstallationsprogramm normalerweise nach freigegebenen DLLs und anderen Dateien, WENN diese gelöscht werden sollen. Bei gleichzeitiger Ausführung funktioniert diese Art der Eingabeaufforderung möglicherweise nicht ordnungsgemäß. Zuletzt, und vielleicht noch wichtiger, hat jeder die Windows-Registrierung vergessen - eine datenbankbezogene Kernkomponente, die bei Installations- / Deinstallationsprogrammen häufig aktualisiert wird.
Darrell Teague
-1

Die gleichzeitige Deinstallation von Programmen hat neben den genannten potenziellen Problemen nur einen geringen Vorteil: Sie ist nicht viel schneller als die sequentielle Deinstallation der Programme. Das Deinstallieren eines Programms ist eine Aufgabe, an der Festplatten-E / A beteiligt ist. Das Ausführen mehrerer Programme, die E / A ausführen, ist nicht schneller als das sequenzielle Ausführen (es sei denn, die Programme sind auf zwei separaten physischen Datenträgern installiert). Tatsächlich ist es wahrscheinlich langsamer, da die beiden konkurrierenden E / A-Aufgaben den Festplatten-Cache weniger effizient machen und die physischen Köpfe der Festplatte von Ort zu Ort springen müssen.

Niccolo M.
quelle
Dies ist als Antwort irrelevant. Alles, was mit Festplatten-E / A zu tun hat, kann sich verlangsamen, wenn Sie zu viele Aufgaben gleichzeitig ausführen. Windows hindert Sie jedoch wirklich nur daran, die Installation gleichzeitig (zu) rückgängig zu machen. Und es gibt einen guten Grund, gleichzeitig (Deinstallations-) Vorgänge ausführen zu wollen - es wäre für Benutzer viel einfacher, eine Reihe von Vorgängen in die Warteschlange zu stellen und sie alle zusammen ausführen zu lassen, anstatt sitzen zu müssen und zu warten für jeden nacheinander zu vervollständigen. Außerdem ist das Konfliktproblem bei SSDs veraltet.
Andrew Medico