![sudo apt-get remove 不会删除配置文件](https://linux22.com/image/1077743/sudo%20apt-get%20remove%20%E4%B8%8D%E4%BC%9A%E5%88%A0%E9%99%A4%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.png)
我是 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:假设所有提示的答案都是“是”,使该过程非交互式且自动化。
因此,此命令实质上会删除不必要的包及其配置文件,释放磁盘空间并通过删除残留依赖项来确保系统清洁。
快乐的时光!