有没有快速可靠的方法可以从服务器中删除与操作系统无关的所有内容?
删除所有内容的意思是:
- 彻底删除所有包及其依赖项
- 彻底删除所有与操作系统无关的目录
总的来说,我有兴趣在基于 Debian 和 CentOS 的服务器上做这件事。
如果没有一种“快速可靠”的方法用一个或多个命令来执行此操作,那么请解释如何手动执行此操作。
答案1
如果您想要返回干净的系统(如“全新安装”),则需要进行全新安装。或者,如果您足够有先见之明,在安装后立即对系统进行裸机映像,则可以返回到该状态。
即使使用 Linux 的软件包系统,也有一些配置和设置在删除或卸载时可能无法删除。特别是在服务器环境中,当您需要全新安装时,您不能简单地删除自安装以来所做的一切。您必须全新安装才能达到全新安装状态。
更新:清洁包
Ramii.org 提供了一些有关在 Debian 系统中列出软件包和清理未使用软件包的提示:http://raymii.org/s/tutorials/Debian-apt-get-dpkg-packages-cleanup-commands.html
列出已安装的软件包:
dpkg --get-selections | cut -f1 | while read pkg; do dpkg -L $pkg | xargs -I'{}' bash -c 'if [ ! -d "{}" ]; then echo "{}"; fi' | tr '\n' '\000' | du -c --files0-from - | tail -1 | sed "s/total/$pkg/"; done | sort -rn > ~/packages.log.txt
他继续列出了在 apt remove 过程中未删除的配置文件的方法。
删除所有想要的软件包后,运行:
apt-get autoremove
和
apt-get clean
清理存储库和未使用的 apt 文件。
答案2
如果您逐个删除软件包(因为没有简单的方法),请确保“清除”它们。也就是说,如果您使用的是 Debian,请使用“aptitude purge packaged”删除所有配置文件。然后还有“aptitude autoremove”来删除不必要的依赖项。
答案3
在 Debian 上,您可以使用“deborphan”工具列出没有依赖它们的软件包,因此除非您确实知道需要它们,否则它们通常会被删除。与所有打包工具一样:请谨慎使用。