Чому програми не видаляють повністю (видалити всі їх файли), коли я їх видаляю?


12

У Ubuntu або будь-якому Linux, коли я вирішу видалити програму, а потім пізніше встановити її, я помічаю, що вона не видаляла нічого, що я раніше робила, таким чином, роблячи це для мене трохи безглуздим, оскільки мені подобається часто встановлювати речі . Щоразу, коли я вирішу перевстановити його, це було так, як це було до того, як я видалив програму. Чому це?

Я звик видаляти щось подібне до Windows або Android тим, що він повністю видаляє все, і єдиним реальним способом відновлення цих даних було б або зберегти його десь, або якщо вони дадуть мені можливість увійти, щоб відновити його, є спосіб зробити це і в Linux?

Іноді я видаляю його з центру програмного забезпечення Ubuntu і використовую sudo apt-get --purge remove [application].

Я використовую Ubuntu 18.10, зараз мені нічого не можна видаляти, мені просто цікаво.


1
Використовуйте purgeзамість remove.
Пілот6

1
Android має можливість синхронізувати дані з обліковим записом Google. Це ви маєте на увазі під "увійти, щоб відновити його"? Я ще не бачив цієї опції в Windows (поки що).
tu-Reinstate Monica-dor duh,

9
Ви справді вірите, що Windows видаляє все. Мій досвід - зовсім навпаки. А безлад, який залишили невстановлені програми в реєстрі Windows, просто жахливий.
Істер

2
Більшість (хороших) програм Windows пропонують вам можливість видалити дату користувача або зберегти її, але ціла купа їх не торкнеться ваших особистих речей.
Т. Сар

@ t-sar Чи можете ви навести приклад цього? Я буквально ніколи не бачив пропозиції програми Windows знищити дані користувачів.
tu-Reinstate Monica-dor duh

Відповіді:


26

Це не зовсім так. Жодна операція з пакетом не повинна видаляти дані користувачів ніколи, ні за яких обставин.

Причина цього проста: У додатку немає даних. Ти робиш.

По-перше, як інакше, крім екрана входу в Ubuntu, якщо програма вимагає від вас увійти , то ваші дані майже точно не знаходяться на вашій машині . Процес входу, швидше за все, пов'язаний з механізмом аутентифікації в Інтернеті, щоб забезпечити доступ до ваших даних, що зберігаються десь в іншому місці . Android та iOS мають (обмежену) можливість синхронізувати невеликі кількості даних користувачів та конфігурації для додатків із "хмарними" серверами, але це не обов'язково зникає і після видалення програми.

Усі ОС (включаючи Windows * та Android) залежать від сценаріїв видалення . Вони припускають, що ви хочете, щоб це програмне забезпечення вийшло, але зберегти конфігурацію, щоб потім можна було знову встановити його. --purgeМожливість aptпросто видаляє файли конфігурації .

Якщо ви вносите зміни за межами власних даних (/ home), тоді ми вважаємо, що ви знаєте, що ви робите, щоб ваша система продовжувала поводитися з вашою конфігурацією. Легко rm -Rконфігураційні файли самостійно, це не так легко отримати ваш конкретний налаштовану версію речі назад, як ви встановили їх. Тому ці сценарії мають помилку на стороні обережності.

Ці сценарії роблять різні припущення щодо того, що було встановлено, і вони часто пишуться людьми, які можуть помилитися. Іноді програмне забезпечення робить щось особливе, особливо коли програмне забезпечення має залежність .

Ми (розробники Ubuntu) роблять робити тести на тестових системах. Ми встановлюємо програмне забезпечення на чисту установку Ubuntu, а потім ми запустимо apt removeі apt --purge removeі переконайтеся , що система повертається до очікуваного (предустановленно) станом.

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

Альтернативою є використання snap, яке повністю розміщує додаток у власному середовищі.

* (насправді, це один із найважливіших способів, за допомогою яких програми Windows встановлюють зловмисне програмне забезпечення, шляхом "piggybacking" зловмисного програмного забезпечення на програми, які ви вирішите встановити, а потім не видаляючи їх під час видалення.)


2
Я думаю, що задане питання полягає в тому, чому при видаленні не видаляються дані користувачів, створені за допомогою програми («не видаляв нічого, що я раніше робив»), і ця відповідь просто констатує це як аксіому в першій парах речень, а не пояснення чи обґрунтування цього.
ShreevatsaR

2
"Легко rm -R конфігураційні файли самостійно" Це так? Це передбачає, що ви знаєте, де вони всі. Хіба вони не могли бути десь? В основному я вважаю, що всі операції встановлення є постійними. Я не бачу сенсу навіть надавати варіант видалення для менеджерів пакетів. Ви завжди повинні починати з нуля, якщо хочете, щоб програмне забезпечення вже не було. Я тут занадто фаталіст?
Нахт -

1
" Хіба вони не могли бути де-небудь? " Технічно так. Насправді, ймовірно, 95% файлів будуть знаходитися в одному з небагатьох традиційних місць. Дуже мало додатків записує файли у абсолютно нелогічні нетрадиційні місця. Отже, вам потрібно просто перевірити кілька відомих каталогів. Часто ви також можете шукати інформацію про програмне забезпечення, щоб знати, які каталоги мають свої файли. Ви можете навіть запустити VM, встановити програмне забезпечення і подивитися, де він записує файли, якщо хочете. Загалом, вам здається, що набагато складніше знайти те, що видалити, ніж це є.
ВЛАЗ

2
"Хіба вони не могли бути десь?" Якщо ви нічого не змінили у конфігураційних файлах, вони будуть видалені, якщо ви використовуєте --purge. Якщо ви зробили щось щось змінити в них, ви , очевидно , знаєте , де вони знаходяться.
технічна_складність

3
тільки якщо вони не були змінені користувачем " - ви впевнені? Принаймні в Debian (а отже, у всіх пакетах, які Ubuntu запускає без змін), очищення пакету видаляє всю його (загальносистемну) конфігурацію, незалежно від того, чи змінив її адміністратор системи (див . Розділ політики щодо поведінки конфігурації ) . Це не скасовує правило, що все, що /homeвходить, є поза межами, тому конфігурація для користувача зберігається.
Стівен Кітт

13

sudo apt remove або деінсталяція програми звичайно з Центру програмного забезпечення просто видалить звичайні файли пакунків і залишить конфігурацію позаду, так що перевстановлення пакета пізніше, як правило, відновить попередній стан програми.

sudo apt purgeабо sudo apt remove --purgeзамість цього вилучите пакунок та додатково видаліть залишкові файли конфігурації, що мають загальну систему. Ви також можете їх використовувати для очищення залишкової конфігурації лише видаленого раніше пакету.

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


5
Пакет, сценарій видалення якого видаляє речі з або навіть перевіряє домашні записи користувачів, є зловмисним програмним забезпеченням, і його не слід приймати до жодних повторюваних дистрибутивів дистрибутива.
R .. GitHub СТОП ДОПОМОГАЙТЕ

0

У Windows завжди є реєстр інвазивної програми в реєстрі, яку потрібно видалити вручну. Все, що стосується AV, сильно заповнює архітектуру Win ... Крім того, Windows вимагає стороннього додатку, щоб повністю видалити програму. Ccleaner і Revo - серед них.

В Ubuntu влучна чистка видаляє майже все, якщо не все. Ручний пошук у Synaptic Package Manager показує весь процес видалення. Це можна подвійно перевірити, застосувавши влучну чистку або навпаки, пошукавши її в Synaptic.

Ви повинні бути обережними та акуратними, використовуючи цей додаток, це гаряче місце.


"У Windows завжди є реєстр інвазивної програми в реєстрі, яку потрібно видалити вручну." Ну, НЕ ВЖЕ! Але це питання.
Лоуренс Пейн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.