有没有办法彻底去除全部Linux 中程序的痕迹?
我对此进行了很多研究,并且我见过人们谈论apt-get remove packagename
、apt-get purge packagename
、apt-get remove --purge packagename
和apt-get autoremove
,但听起来所有这些都留下了配置文件或某种其他痕迹。
我想删除一切, 尽管。我说的是卸载并完全删除程序、包、所有依赖项、所有配置文件和所有数据文件。删除与该程序相关的所有内容,让系统就像该程序从未安装且从未存在过一样。
我希望从 Windows 切换到 Linux 作为我的主要操作系统,但为了让我晚上睡得香,我需要要知道,当我卸载某些东西时,与该东西相关的所有内容都消失了。我知道这很奇怪。但你知道,我们都有自己的需求。
请在这里帮助我;如果需要的话,我什至可以基于此选择一个发行版。
谢谢,祝你有美好的一天!
答案1
Debian 区分删除软件包(留下其conf文件,以防您稍后重新安装)和清除软件包(删除软件包及其conf文件)。
apt-get purge package
apt-get --purge autoremove
或者,正如 @StephenKitt 在评论中提到的,只需一个命令即可完成此操作:
apt purge --autoremove package
这将首先清除包(即删除它及其所有conf文件),然后清除任何其他包:
- 已自动安装作为包(您正在清除的包或其他一些包)的依赖项,或者已被标记
auto
为apt-mark auto packagename
.
和
- 当前安装的任何其他软件包都不需要
注意:这将不是删除由包创建的不属于包本身的任何文件。例如,如果您这样做apt purge vim
,它不会清除由vim
.包管理器管理包,他们不管理您的个人文件。如果您也希望删除此类文件,则必须自己查找并删除它们。
另请注意:它不会删除系统日志中任何提及该包的内容。事实上,安装和删除/清除软件包会在/var/log/dpkg.log
和/或 中生成日志条目/var/log/apt/
另一件需要考虑的事情是,如果您已经etckeeper
安装了(您应该这样做,因为它非常有用,并且可以在灾难性的情况下保存您的培根),任何清除的软件包(至少是那些在 中具有配置文件的软件包/etc
)的痕迹都将保留在/etc
的修订历史记录(通过git
或任何etckeeper
配置使用的内容)。
etckeeper
安装后,git commit
每天从 cron 运行和 apt
配置为git commit
在安装、升级或卸载软件包时运行。