如何让Ubuntu回到原始状态?

我想将Ubuntu安装恢复到新安装时的状态,而不需要真正重新安装,也就是说,我想删除所有安装后安装的软件包,而不是默认安装的一部分。

如何做到这一点,或在哪里可以find一个安装在默认的Ubuntu安装(用于diff dpkg -l )的软件包列表?

那么,基本软件包列表(假设这是一个桌面系统)是由ubuntu-minimalubuntu-desktop软件包组合而成的。 这些是仅仅依靠其他软件包而存在的元包。 当然,问题是它们的依赖列表不是完整的包列表。 他们依赖的软件包可能有其他的依赖。

所以…我会build议在aptitude玩。 也许尝试标记所有已安装的软件包以便删除,然后特别select要安装的活动内核,ubuntu-minimal和ubuntu-desktop。 有一点小小的变化,你应该能够达到这样的程度:标记为被移除的唯一的软件包是两个元组件不需要的软件包。

我没有试过这个。 我甚至没有尝试过。 您可以通过遵循我的build议来连接您的系统。

玩的开心!

我创build了三个列表:

  • Ubuntu9.04-要求 – 几乎没有什么,除了基本的软件包(没有SSH!)
  • Ubuntu9.04-minimal-ubuntu-minimal安装
  • Ubuntu9.04标准 – Ubuntu的桌面和Ubuntu的标准安装

这些只是一个问题:

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安装上创build,所以它们可能不是完美的原始状态的再现,但是它们应该足够清理一个系统。

这样做有没有特别的目标? 也许还有另外一个解决scheme,除非你的整个目标只是回滚。 但如果这是你的目标,我不知道你为什么不只是重新安装格式…?

通常,发行版将这些内容logging在/ var / log /内。 如果你使用aptitude或者/var/log/dpkg.log,如果你使用了dpkg,Ubuntu会login/ var / log / aptitude。 我不确定使用apt-get时会调用什么日志文件。

顺便说一句,Fedora使用/var/log/yum.log,而较老的RHEL使用/ var / log / up2date。

如果你写一个脚本来parsing这些文件,你应该可以pipe理。 不过,我不认为日志会考虑到更新,所以要小心不要把世界移除。

就个人而言,在初始安装之后,我会立即使用CloneZilla制作磁盘镜像。 然后,您可以随时恢复磁盘映像。 如果你的/ home目录位于不同的物理磁盘上,这种方法非常有效,因为这样你就可以恢复系统并保留所有的用户设置。 整个恢复过程大约需要30分钟。