sudo apt-get remove 不会删除配置文件

sudo apt-get remove 不会删除配置文件

我是 Linux/Ubuntu 的新手 - 我想知道我看到的行为是否符合设计。我已经安装了 vsftpd:

 sudo apt-get install vsftpd

然后我删除:

 sudo apt-get remove vsftpd

但是,查看 /etc 后,我发现 vsftpd.conf 仍然存在。有人能解释一下为什么会发生这种情况吗(我假设删除会删除与 vsftpd 相关的所有文件)?

答案1

改为使用sudo apt-get purge <program>,也删除配置文件。

答案2

您正在寻找清除

sudo apt-get purge vsftpd

还会删除配置文件。即使您已经remove卸载了软件包,也可以这样做。

答案3

还可以看到一些旧配置吗?以下是答案:)

sudo apt-get clean && sudo apt-get autoremove --purge -y $(dpkg --list |
grep '^rc' | awk '{print $2}')

所有建议的“apt purge”命令确实在以下地方留下了一些残留物:

  • /启动
  • /lib/模块
  • 一些标题等等

理想情况下,您永远不应该手动处理这些“残留”。相反,要有效地删除 Ubuntu 中已清除的内核配置文件,请运行上述命令。此命令将识别具有残留配置的已删除软件包并彻底清除它们!

一般来说,定期运行上述清理命令以保持系统清洁是一种很好的做法。


TL;DR 非常长的解释:

“apt-get clean”命令从本地包缓存中删除缓存的包文件,通过删除不再需要的下载的 .deb 文件来释放磁盘空间。

“dpkg --list” 命令显示已安装和已删除软件包的信息。输出中的状态列指示每个软件包的状态。状态代码(每行输出的前 2-3 个字母)包括:- ii:软件包已安装。- rc:软件包已删除但其配置文件仍然存在。

因此,如果您看到状态为 rc 的包,则表示该包已被删除,但其配置文件仍保留在系统中。

“grep”命令将仅使用正则表达式“^rc”选择以字母“rc”开头的行。

然后我们将输出通过管道传输到 awk 命令。'awk' 是类 Unix 系统中一种多功能且功能强大的编程语言和命令行实用程序,专为文本处理、模式扫描和数据提取而设计。我们告诉它使用空格作为分隔符来拆分每一行并仅打印第二“列”:'{print $2}' - 这将打印包的名称。

在 Bash 中,$( ) 语法用于命令替换。它允许您用命令的输出替换命令中的命令。现在我们有了想要从系统中清除的不需要的软件包的列表。

下一个“sudo apt-get autoremove --purge -y”命令将获取要删除的软件包列表并:

  • sudo:以管理员权限执行命令。
  • apt-get:用于与高级软件包工具(APT)交互的包管理命令。
  • autoremove:删除那些作为其他软件包的依赖项自动安装但不再需要的软件包。
  • purge:删除软件包及其配置文件。这可确保彻底删除。
  • -y:假设所有提示的答案都是“是”,使该过程非交互式且自动化。

    因此,此命令实质上会删除不必要的包及其配置文件,释放磁盘空间并通过删除残留依赖项来确保系统清洁。

快乐的时光!

相关内容