If-Koubou

Dlaczego nie można odinstalować wielu programów jednocześnie w systemie Windows?

Dlaczego nie można odinstalować wielu programów jednocześnie w systemie Windows? (Jak)

Załóżmy, że masz małą hordę programów, które chcesz odinstalować w systemie Windows, ale system Windows pozwoli Ci tylko odinstalować je pojedynczo. Dlaczego? Co powstrzymuje Cię od odinstalowania wielu programów jednocześnie?

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser - poddziału Stack Exchange, społecznościowego forum z pytaniami i odpowiedziami.

Pytanie

Czytnik SuperUser Jeroen Bollen chce wiedzieć, dlaczego dana osoba nie jest w stanie odinstalować wielu programów jednocześnie w systemie Windows:

Dlaczego system Windows uniemożliwia odinstalowywanie lub usuwanie wielu programów jednocześnie? Jaki jest tego powód? Czy to zepsuje system wewnętrzny?

Nie chcę odinstalowywać wielu programów jednocześnie, po prostu szukam powodu (powodów), dlaczego nie byłoby to możliwe.

Co powstrzymuje ludzi przed odinstalowaniem wielu programów jednocześnie w systemie Windows?

Odpowiedź

SuperUser współpracownicy ultrasawblade i techie007 mają dla nas odpowiedź. Najpierw ultrasawblade:

Jeśli czytasz cokolwiek o tym, jak działa system instalacyjny systemu Windows, oczywiste jest, że zastosował on pewne pomysły z transakcyjnych baz danych do instalacji programu i konserwacji, nie wspominając o tym, że .msi same pliki są bazą danych.

Zawsze jest kwestia przy projektowaniu dowolnej bazy danych - czy chcesz szybkość, dokładność / bezpieczeństwo? Biorąc pod uwagę fakt, że instalatorzy mogą modyfikować konfigurację systemu i nieszczęśliwy wypadek może spowodować, że system przestanie działać, bezpieczeństwo ma priorytet nad szybkością.

Jednym z powodów, dla których .msi instalatory są tak powolne, ponieważ pliki przywracania są tworzone dla każdego pliku itp., które zostaną zmodyfikowane, a następnie usunięte, pozwalając, aby wszelkie zmiany zostały "wycofane", jeśli coś pójdzie nie tak w środku rzeczy (np. zaniku zasilania lub Awaria systemu).

Teraz uważam, że silnik MSI sam wymusza instalowanie, modyfikowanie lub usuwanie tylko jednego programu na raz. Jeśli spróbujesz uruchomić .msi plik podczas gdy inny odinstalowuje, na przykład, albo nie będzie działać, albo będzie czekał na zakończenie aktualnie uruchomionego procesu dezinstalacji. Instalacje inne niż MSI mogą nie zachowywać się w ten sposób, ponieważ nie korzystają z silnika MSI. Ale z powodu tej decyzji dotyczącej bezpieczeństwa, to prawdopodobnie dlatego appwiz.cpl nalega na zezwolenie na jednorazowe wywołanie tylko jednego dezinstalatora.

CCleaner pozwala uruchamiać dezinstalatory, nie czekając na zakończenie wcześniej uruchomionych, ale instalatory MSI prawdopodobnie nadal nie będą działały równolegle z powodu powyższego.

Poniżej znajduje się odpowiedź od techie007:

Dotyczy to wyłącznie programów korzystających z systemu Windows Installer.

Jeśli program używa własnych (nie) systemów instalacyjnych, to nic nie powstrzyma cię od uruchomienia innego deinstalatora w tym samym czasie.

Instalator Windows ogranicza liczbę instancji, aby uniknąć konfliktów przez wiele programów, podczas gdy zmieniają one ustawienia i pliki obejmujące cały system (często udostępniane).

Większość dezinstalatorów śledzi zmiany, które można zmienić, aby można je było przywrócić, jeśli wystąpi awaria. Jeśli nie jest się świadomym wszystkich wprowadzanych zmian (przez inne deinstalatory), może to faktycznie spowodować, że rzeczy będą WORSE, jeśli spróbuje przywrócić nieudaną instalację.

System Windows Installer został stworzony z myślą o ujednoliceniu systemu, z którego mogą korzystać wszyscy twórcy aplikacji (w systemie Windows), aby uniknąć takich problemów.

Czy masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych użytkowników Stack Exchange, którzy znają się na technologii? Sprawdź cały wątek dyskusji tutaj.