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

Son*_*Man 14 software-uninstall

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

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

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

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

tu-*_*duh 28

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

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

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

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

如果您在自己的数据 (/home) 之外进行修改,那么我们假设您知道自己在做什么,因此您的系统会继续按照您的配置运行。这很容易rm -R在配置文件自己,这不是那么容易得到你的具体定制的东西版本支持你已经建立起来的方式。 因此,这些脚本倾向于谨慎行事。

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

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

如果您确实看到安装了软件包但未对配置进行任何修改的情况,然后删除了该软件包但保留了文件,则针对该软件包提交错误。

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

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

  • “并且*仅当它们没有被用户修改*”——你确定吗?至少在 Debian 中(因此,在 Ubuntu 不加更改的情况下引入的所有软件包中),清除软件包会删除其所有(系统范围的)配置,无论系统管理员是否对其进行了修改(请参阅 [关于配置行为的策略部分](https://www.debian.org/doc/debian-policy/ch-files.html#behavior))。这不会覆盖 `/home` 中的任何内容都是禁止的规则,因此保留了用户特定的配置。 (3认同)
  • 我认为所问的问题是为什么卸载不会删除使用该应用程序创建的用户数据(“没有删除我以前制作的任何内容”),并且这个答案只是在第一对句子中将其声明为公理,而不是解释或证明它。 (2认同)
  • “自己 rm -R 配置文件很容易”是吗?这假设你知道他们都在哪里。他们不能在任何地方吗?我基本上假设所有安装操作都是永久性的。我什至看不到为包管理器提供删除选项的意义。如果你想要软件消失,你总是必须从头开始。我是不是太宿命论了? (2认同)
  • _“它们不能在任何地方吗?”_ 如果您没有更改配置文件中的任何内容,如果您使用 `--purge`,它们将被删除。如果你 _did_ 改变了它们,你显然知道它们在哪里。 (2认同)

Byt*_*der 14

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

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

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

  • 删除脚本从用户的主目录中删除内容甚至检查用户主目录的包是**恶意软件**,不应被任何可信赖的发行版的存储库接受。 (5认同)