为什么当我删除程序时它们没有完全卸载(删除其所有文件)?

为什么当我删除程序时它们没有完全卸载(删除其所有文件)?

在 Ubuntu 或任何 Linux 中,当我决定删除某个程序然后重新安装它时,我注意到它并没有删除我之前所做的任何操作,因此这对我来说有点毫无意义,因为我喜欢经常重新安装东西。每当我决定重新安装它时,它就像我删除程序之前一样。为什么会这样?

我习惯于卸载类似于 Windows 或 Android 的东西,它会完全删除所有内容,恢复数据的唯一真正方法是将其保存在某个地方,或者如果他们给我一个登录来恢复它的选项,那么在 Linux 上也有办法这样做吗?

有时我会将其从 Ubuntu 软件中心删除并使用sudo apt-get --purge remove [application]

我正在使用 Ubuntu 18.10,现在没有什么可卸载的,我只是好奇。

答案1

这不完全正确。 在任何情况下,任何包裹操作都不应删除用户数据。

原因很简单:该应用程序不拥有该数据。 你做。

首先,顺便说一下,除了 Ubuntu 登录屏幕之外,如果应用程序要求你登录,那么您的数据几乎肯定不在你的机器上。登录过程很可能与在线身份验证机制有关,以提供使用权您的数据存储在其他地方。Android 和 iOS 具有(有限的)将应用程序的少量用户和配置数据与“云”服务器同步的能力,但这些数据在卸载应用程序后也不一定会消失。

所有操作系统(包括 Windows* 和 Android)都依赖于删除脚本。这些假定您希望软件消失,但保留配置,以便您以后可以再次安装。选项--purgeapt删除配置文件

如果你在自己的数据(/home)之外进行修改,那么我们假设你知道自己在做什么,这样你的系统就会继续运行你的rm -R配置。自己配置配置文件很容易,想要将您特定定制的版本恢复到您设置的状态并不容易。 因此这些脚本倾向于谨慎行事。

这些脚本对安装的内容做出了各种假设,而且它们通常是由人编写的,而人可能会犯错误。有时软件会做一些特别的事情,特别是当软件有依赖项

我们(Ubuntu 开发人员)在测试系统上进行测试。我们将软件安装到 Ubuntu 的全新安装中,然后运行apt removeapt --purge remove验证系统是否恢复到预期(预安装)状态。

如果你确实看到这样的情况:安装了一个包,没有对配置进行任何修改,然后删除了包,但文件仍然存在,那么针对该软件包提交错误报告。

另一种方法是使用snap,它将应用程序完全安置在其自己的环境中。

*(事实上,这是 Windows 应用程序安装恶意软件的主要方式之一,通过“搭载”恶意软件到您选择安装的应用程序上,然后不是卸载时将其删除。)

答案2

sudo apt remove或者从软件中心正常卸载应用程序只会卸载常规包文件并留下配置,以便稍后重新安装包通常会恢复应用程序的先前状态。

sudo apt purge或者sudo apt remove --purge将卸载软件包并随后删除残留的系统范围配置文件。您还可以使用这些来清除之前仅删除的软件包的残留配置。

但是,包管理器永远不会删除在应用程序运行时创建的用户数据或用户配置文件。这些文件不会被跟踪,如果用户不想保留它们,他们有责任自己将它们从主目录中清除。(理论上,包可以包含一个删除后脚本,用于检查它可能创建的文件的常见用户数据位置,但通常情况并非如此)

答案3

在 Windows 中,注册表中总会有一些入侵程序的痕迹,必须手动删除。任何与 AV 相关的东西都会大量填充 Win 架构……此外,Windows 需要第三方应用程序才能完全删除程序。Ccleaner 和 Revo 就是其中之一。

在 Ubuntu 中,清除删除几乎所有内容,如果不是全部的话。在 Synaptic Package Manager 中手动搜索可以显示整个删除过程。可以通过运行清除或者相反,通过在 Synaptic 中搜索。

您必须谨慎、精确地使用该应用程序,因为它是一个热门的地方。

相关内容