Почему программы не удаляются полностью (удаляются все их файлы) при их удалении?

12

В Ubuntu или любом Linux, когда я решаю удалить программу, а затем переустанавливать ее, я замечаю, что она не удаляет ничего, что я делала ранее, что делает ее немного бессмысленной для меня, так как я люблю часто заново устанавливать вещи , Всякий раз, когда я решаю переустановить его, это так же, как это было до удаления программы. Почему это?

Я привык удалять что-то похожее на Windows или Android в том смысле, что оно полностью удаляет все, и единственный реальный способ восстановить эти данные - это либо сохранить их где-нибудь, либо если они дают мне возможность войти в систему, чтобы восстановить их, Есть ли способ сделать это на Linux тоже?

Иногда я удаляю его из Центра программного обеспечения Ubuntu и использую sudo apt-get --purge remove [application].

Я использую Ubuntu 18.10, мне нечего сейчас удалять, мне просто любопытно.

SonicStarMan
источник
1
Используйте purgeвместо remove.
Pilot6
1
Android имеет возможность синхронизировать данные с учетной записью Google. Это то, что вы подразумеваете под "войти, чтобы восстановить его"? Я не видел этот вариант в Windows (пока).
Tu-Reinstate Моника-Дор Дух
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, «совмещая» вредоносные программы с приложениями, которые вы выбрали для установки, и не удаляя их при удалении.)

Tu-Reinstate Моника-Дор Дух
источник
2
Я думаю, что заданный вопрос заключается в том, почему при деинсталляции не удаляются пользовательские данные, созданные с помощью приложения («не удалил ничего, что я сделал ранее»), и этот ответ просто указывает на это как аксиому в первой паре предложений вместо объясняя или оправдывая это.
ShreevatsaR
2
"Легко rm -R файлы конфигурации самостоятельно" Это так? Это предполагает, что вы знаете, где они все. Разве они не могут быть где-нибудь? Я в основном предполагаю, что все операции установки являются постоянными. Я не вижу смысла даже предоставлять опцию удаления для менеджеров пакетов. Вы всегда должны начинать с нуля, если вы хотите, чтобы программное обеспечение исчезло. Я слишком фаталист здесь?
Nacht - Восстановить Монику
1
« Разве они не могут быть где-нибудь? » Технически да. В действительности, вероятно, 95% файлов будут находиться в одном из немногих традиционных мест. Очень немногие приложения будут записывать файлы в совершенно нелогичные нетрадиционные места. Итак, обычно вам просто нужно проверить несколько хорошо известных каталогов. Часто вы также можете найти информацию о программном обеспечении, чтобы узнать, в каких каталогах есть его файлы. Вы даже можете запустить виртуальную машину, установить программное обеспечение и посмотреть, куда он записывает файлы, если хотите. В общем, вы говорите так, будто найти что удалить гораздо сложнее, чем есть.
ВЛАЗ
2
"Разве они не могут быть где-нибудь?" Если вы ничего не изменили в конфигурационных файлах, они будут удалены, если вы используете --purge. Если вы что- то изменили в них, вы, очевидно, знаете, где они находятся.
technical_difficulty
3
«И только если они не были изменены пользователем » - вы уверены? По крайней мере, в Debian (и, следовательно, во всех пакетах, которые Ubuntu добавляет без изменений), очистка пакета удаляет всю его (общесистемную) конфигурацию, независимо от того, изменил ли ее системный администратор (см. Раздел политики о поведении конфигурации ) , Это не отменяет правило, согласно которому что-либо /homeзапрещено, поэтому конфигурация для конкретного пользователя сохраняется.
Стивен Китт
13

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

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

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

Byte Commander
источник
5
Пакет, сценарий удаления которого удаляет объекты из домашних папок пользователей или даже проверяет их, является вредоносным программным обеспечением и не должен приниматься ни в какие репозитории респектабельного дистрибутива.
R .. GitHub ОСТАНОВИТЬ ЛЬДА
0

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

В Ubuntu apt purge удаляет почти все, если не все. Ручной поиск в Synaptic Package Manager показывает весь процесс удаления. Его можно проверить дважды, запустив apt purge или наоборот, выполнив поиск в Synaptic.

Вы должны быть осторожны и точны, используя это приложение, это горячее место, чтобы быть.

Mikemecanic
источник
«В Windows у вас всегда есть след инвазивной программы в реестре, который необходимо удалить вручную». Ну, не всегда! Но это проблема.
Лоуренс Пейн