为什么“apt-cache search”和“find / -name”显示与我已清除的包关联的文件?

ske*_*mal 3 package-management dependencies libreoffice apt-cache purge

我专门在我的系统上安装了 libreoffice-writer,然后用sudo apt-get purge '*libreoffice-writer*' --autoremove. 之后,我一个接一个地运行这些终端命令,以确定我是否真的删除了与 libreoffice 或 libreoffice-writer 关联的所有文件 -

apt-cache search libreoffice-writer

sudo find / -name libreoffice 
Run Code Online (Sandbox Code Playgroud)

命令输出图像

然后我运行apt-cache search libreoffice,它显示了数十个名为“libreoffice”的文件 输出图像

正如您在终端图像中看到的,为什么仍然留下这么多关联文件?我如何删除所有这些文件,以便下次我从 libreoffice 安装任何内容时,它应该像第一次在我的系统上安装一样自行安装?

use*_*733 12

Apt 维护着来自所有当前已知来源的所有可用 deb 包的本地数据库。“可用”意味着它包括您当前未安装的软件包以及您当前已安装的软件包。

  • apt-cache搜索数据库
  • apt update从这些来源刷新数据库
  • apt list libreoffice-writer或者apt list libreoffice*将指定安装输出中的哪些包。

现在让我们看看 --purge 后保留的文件和目录。

  • apt 删除文件后,如果目录不为空,则可能会保留目录。其他一些包(或管理员)也可能正在使用该目录。

  • Apt 永远不会删除 /home 目录下的任何文件。(联机帮助页对此非常清楚)


关于在 apt 中使用通配符的一句话:当通配符导致额外的包被标记为要执行操作,而他们希望被标记的包却没有被标记时,许多用户都会感到惊讶。

导致操作与预期不同的原因可能有很多:依赖性、意外的名称、拼写错误、错误的通配符等。

关于安全、有效地使用 apt 通配符有两种思想流派:

  1. 首先使用 apt--simulate来测试操作。在真正做之前检查你的输出并发现意想不到的情况。

  2. 完全避免使用通配符。使用 apt 的工具来了解您想要操作的正确包。然后列出这些包。