Dlaczego system Windows nie pozwala na odinstalowanie lub usunięcie wielu programów jednocześnie? Jakie jest tego uzasadnienie? Czy to zepsuje system wewnętrzny?
Nie szukam sposobu na odinstalowanie wielu programów jednocześnie, po prostu szukam powodu, dla którego nie byłoby takiej opcji.
apt-get -y uninstall prog1 prog2 prog3
.Odpowiedzi:
Jeśli czytasz cokolwiek na temat działania systemu Instalatora Windows, oczywiste jest, że zastosowali kilka pomysłów z transakcyjnych baz danych do instalacji i konserwacji programu, nie wspominając już o
.msi
samych plikach, które są bazą danych.Przy projektowaniu dowolnej bazy danych zawsze pojawia się pytanie - czy chcesz szybkości, dokładności / bezpieczeństwa? Biorąc pod uwagę, że instalatorzy mogą modyfikować konfigurację systemu, a nieszczęście może uniemożliwić działanie systemu, bezpieczeństwo ma pierwszeństwo przed prędkością. Jednym z powodów, dla których
.msi
instalatorzy są tak powolni, jest to, że pliki przywracania są tworzone dla każdego pliku itp., Które zostaną zmodyfikowane, a następnie usunięte - umożliwiając „cofnięcie” wszelkich zmian, jeśli coś pójdzie nie tak ( takich jak przerwa w dostawie prądu lub awaria systemu).Teraz uważam, że sam silnik MSI wymusza instalowanie, modyfikowanie lub usuwanie tylko jednego programu na raz - jeśli spróbujesz uruchomić jakiś czas
.msi
, inny program się odinstalowuje, na przykład albo nie uruchomi się, albo zaczeka na aktualnie uruchomioną dezinstalację skończyć. Instalatory spoza MSI mogą nie zachowywać się w ten sposób - ponieważ nie używają silnika MSI. Ale z powodu tej decyzji dotyczącej bezpieczeństwa prawdopodobnie dlategoappwiz.cpl
nalega, aby zezwolić tylko na jeden deinstalator na raz.CCleaner pozwala uruchamiać deinstalatory bez czekania na zakończenie poprzednio uruchomionych. Instalatory MSI prawdopodobnie nadal nie będą działać równolegle z powodu powyższego.
źródło
Dotyczy to tylko programów korzystających z systemu Windows Installer .
Jeśli program korzysta z własnego (nie) systemu instalatora, nic nie stoi na przeszkodzie, aby uruchomić inny deinstalator w tym samym czasie.
Instalator Windows ogranicza liczbę wystąpień, aby uniknąć konfliktów między wieloma programami, gdy zmieniają one systemowe ustawienia (często udostępniane) i pliki.
Większość dezinstalatorów śledzi zmiany, aby w razie awarii móc je wycofać. Jeśli ktoś nie jest świadomy wszystkich zmian wprowadzanych (przez inne deinstalatory), może faktycznie działać gorzej, jeśli spróbuje przywrócić nieudaną instalację.
System Instalatora Windows został stworzony z myślą o ujednoliceniu systemu, z którego mogą korzystać wszyscy programiści aplikacji (w systemie Windows), aby uniknąć takich problemów.
źródło
Zadania dezinstalacyjne często modyfikują pliki współdzielone przez wiele programów lub pliki systemowe \ Rejestr (jest to częściowy powód, dla którego jest to potrzebne do zarządzania administracyjnego). Jeśli uruchomionych zostanie wiele zadań odinstalowywania, mogą one powodować konflikty. Jeśli kiedykolwiek miałeś do czynienia z „DLL Hell”, byłoby tak samo. Inne programy lub sam system Windows mogą pozostawać w niespójnym stanie.
źródło
Jednoczesne odinstalowywanie programów, oprócz potencjalnych innych wymienionych problemów, ma bardzo małą zaletę: nie będzie dużo szybsze niż odinstalowywanie programów sekwencyjnie. Odinstalowanie programu to zadanie obejmujące dyskowe operacje we / wy. Uruchamianie kilku programów wykonujących operacje we / wy nie jest szybsze niż uruchamianie ich sekwencyjnie (chyba że programy są zainstalowane na dwóch osobnych dyskach fizycznych). W rzeczywistości będzie prawdopodobnie wolniej, ponieważ dwa konkurujące ze sobą zadania IO spowodują, że pamięć podręczna dysku będzie mniej wydajna, a fizyczne głowice dysku będą musiały przeskakiwać z miejsca na miejsce.
źródło