/ / Чому ви не можете одночасно видаляти кілька програм у Windows?

Чому ви не можете одночасно видаляти кілька програм у Windows?

чому ви не зможете видалити кілька програм одночасно у Windows-00

Припустимо, у вас є невелика орда програмВи хочете видалити вашу систему Windows, але Windows дозволить видалити їх лише по одному. Чому так? Що заважає вам видаляти кілька програм одночасно?

Сьогоднішня сесія "Питання та відповіді" приходить до нас з люб'язності SuperUser - підрозділу Stack Exchange, групування веб-сайтів Q&A, керованого громадою.

Питання

Читач SuperUser Jeroen Bollen хоче знати, чому людина не може видалити кілька програм одночасно в Windows:

Чому Windows перешкоджає видаленню чи видаленню декількох програм одночасно? Які міркування за цим? Чи це зіпсує внутрішню систему?

Я не хочу видаляти кілька програм одночасно, я просто шукаю причину (и), чому це не було б варіантом.

Що це заважає людям одночасно видаляти кілька програм у Windows?

Відповідь

Учасники SuperUser ultrasawblade та techie007 мають відповідь за нас. По-перше, ультрапила:

Якщо ви читаєте що-небудь про те, як працює система інсталятора Windows, очевидно, що вони застосовували деякі ідеї з транзакційних баз даних до встановлення та обслуговування програми, не кажучи вже про це .msi Самі файли - це база даних.

Завжди є питання при проектуванні будь-якогобаза даних - хочете швидкість чи точність / безпеку? Зважаючи на те, що інсталятори можуть змінювати конфігурацію системи та невідповідність може призвести до непрацездатності системи, безпеці було надано пріоритет над швидкістю.

Одна з причин, чому .msi інсталятори настільки повільні, оскільки файли відкатустворюються для кожного файлу тощо, який буде модифікований, а потім видалений, що дозволить будь-яким змінам «повернути назад», якщо в середині справи щось піде не так (наприклад, відключення електроенергії або збої в системі).

Тепер я вважаю, що двигун MSI сам примушує встановлювати, змінювати чи видаляти лише одну програму за один раз. Якщо ви спробуєте запустити .msi файл, а інший видаляється, наприклад,він або не запуститься, або буде чекати завершення поточного запущеного процесу видалення. Інсталятори, що не мають MSI, можуть вести себе не так, оскільки вони не використовують двигун MSI. Але через таке рішення щодо проектування безпеки, мабуть, саме тому appwiz.cpl наполягає на тому, щоб дозволити одразу викликати лише одного видалення.

CCleaner дозволяє зняти деінсталятори, не чекаючи закінчення раніше запущених, але інсталятори MSI, швидше за все, не працюватимуть паралельно через вищезазначене.

Після цього відповідь від techie007:

Це дійсно стосується лише програм, які використовують систему інсталятора Windows.

Якщо програма використовує власні (не) системи інсталятора, то ніщо не заважає одночасно запускати інший деінсталятор.

Інсталятор Windows обмежує кількість примірників, щоб уникнути конфліктів, створюваних декількома програмами, коли вони змінюють загальносистемні (часто спільні) налаштування та файли.

Більшість деінсталяторів відстежують, що вони так змінюютьвони можуть відмовитись успішно, якщо стався збій. Якщо хтось не знає про всі зміни, які вносяться (іншими видаленнями), то він може насправді зробити ПРАВИЛЬНИЙ, якщо спробує відкатати невдалу установку.

Система інсталятора Windows була створена з наміром бути єдиною системою для всіх розробників додатків (у Windows), щоб уникнути подібних проблем.


Щось додати до пояснення? Звучить у коментарях. Хочете прочитати більше відповідей від інших користувачів, які користуються технологією Stack Exchange? Ознайомтесь із повною темою дискусії тут.