我有几台机器计划在集群中运行,但经过一些测试后决定对它们进行不同的配置。分区和 Ubuntu 安装仍然符合我的要求,但如果能将它们恢复到干净状态而不必重新安装它们,那就太好了。
答案1
事实上,我之前就不得不这么做(几年前,所以请原谅命令不够完美),这就是我所做的。
首先:
dpkg --get-selections > installed.txt
然后我碰巧有一个新的安装,我在上面做了同样的事情。如果你没有,你可能可以在某处找到适用于你的发行版的列表。然后:
sdiff [your install list] [clean install list] --suppress-common-lines > differences.txt
sdiff [clean install list] [differences] --suppress-common-lines > remove.txt
第二个 sdiff 允许使用您可能已从安装中删除的默认软件包。只是想避免不必要的错误。下一部分实际上是您最喜欢的搜索和替换方法,我喜欢 vim,所以我用的是 vim。
:%s/install//g
这是因为 dkpg 在列表中的每个软件包后面都留下了 install 字样,而我们不希望出现这种情况。我还在 vim 中运行了几个命令来删除多余的空格,并用空格替换换行符,只是为了让它更干净一些。然后通过 apt-get remove 运行此文件(如果需要,可以添加 --purge)。
如果您想更加彻底,可以使用不同的清理器来清除垃圾,也可以以不同的方式运行比较,这样您就可以重新添加您可能已删除的软件包 [从默认软件包列表中]。
总而言之,在我做完所有这些之后,我认为与重新安装 Ubuntu 的相对容易程度相比,这样做不值得。
答案2
sudo dpkg -i /var/cache/apt/archives/*.deb
sudo dpkg --configure -a
然后,如果有什么东西坏了,就运行几次:
sudo apt-get install -f
sudo dpkg --configure -a