我想将 Ubuntu 安装恢复到新安装时的状态,而无需实际重新安装,即我想删除之后安装的所有软件包,而不是默认安装的一部分。
一个人将如何做到这一点,或者我在哪里可以找到安装在默认 Ubuntu 安装上的软件包列表(用于diff
'ing against dpkg -l
)?
我想将 Ubuntu 安装恢复到新安装时的状态,而无需实际重新安装,即我想删除之后安装的所有软件包,而不是默认安装的一部分。
一个人将如何做到这一点,或者我在哪里可以找到安装在默认 Ubuntu 安装上的软件包列表(用于diff
'ing against dpkg -l
)?
嗯,基础包列表(假设这是一个桌面系统)是由
ubuntu-minimal
和ubuntu-desktop
包组合而成的。这些是仅依赖于其他包而存在的元包。当然,问题在于它们的依赖项列表不是完整的包列表。他们所依赖的包可能有其他依赖。所以...我建议在
aptitude
. 也许尝试标记所有已安装的软件包以进行删除,然后专门选择要安装的活动内核、ubuntu-minimal 和 ubuntu-desktop。稍加修改,您应该能够达到一个点,即标记为要删除的唯一包是两个元包不需要的包。我没试过这个。我什至没有尝试过它。您可以按照我的建议来冲洗您的系统。
玩得开心!
我创建了三个列表:
有了这些,它只是一个问题:
dpkg -l | grep ^ii | awk "{ print \$2 }" | sort > /tmp/pkgs
diff -u Ubuntu9.04-required /tmp/pkgs | sed -n "s/^\\+//p" > /tmp/pkgs-to-delete
apt-get remove $(cat /tmp/pkgs-to-delete)
清除 Ubuntu 以返回所需状态。这些列表尚未在干净的 Ubuntu 安装上创建,因此它们可能不是原始状态的完美再现,但它们应该足以清理系统。
你有什么特别的目标作为这样做的目标吗?也许这个问题还有另一种解决方案,除非你的整个目标只是回滚它。但是,如果那是您的目标,我不知道您为什么不使用格式重新安装...?
通常,发行版将这些内容记录在 /var/log/something 中。如果您使用 aptitude,Ubuntu 登录 /var/log/aptitude;如果您使用 dpkg,则登录 /var/log/dpkg.log。我不确定使用 apt-get 时会调用什么日志文件。
顺便说一下,Fedora 使用 /var/log/yum.log,而较旧的 RHEL 使用 /var/log/up2date。
如果您编写一个小脚本来解析这些文件,您应该能够管理。不过,我不认为日志会考虑更新,因此请注意不要仅仅删除世界。
就个人而言,我会在初始安装后立即使用 CloneZilla 制作磁盘映像。然后,您可以随时恢复磁盘映像。如果您将 /home 目录放在不同的物理磁盘上,这将非常有效,因为这样您就可以恢复系统并保留所有用户设置。整个恢复过程大约需要 30 分钟。