我想将Ubuntu安装恢复到新安装时的状态,而不需要真正重新安装,也就是说,我想删除所有安装后安装的软件包,而不是默认安装的一部分。
如何做到这一点,或在哪里可以find一个安装在默认的Ubuntu安装(用于diff
dpkg -l
)的软件包列表?
那么,基本软件包列表(假设这是一个桌面系统)是由ubuntu-minimal
和ubuntu-desktop
软件包组合而成的。 这些是仅仅依靠其他软件包而存在的元包。 当然,问题是它们的依赖列表不是完整的包列表。 他们依赖的软件包可能有其他的依赖。
所以…我会build议在aptitude
玩。 也许尝试标记所有已安装的软件包以便删除,然后特别select要安装的活动内核,ubuntu-minimal和ubuntu-desktop。 有一点小小的变化,你应该能够达到这样的程度:标记为被移除的唯一的软件包是两个元组件不需要的软件包。
我没有试过这个。 我甚至没有尝试过。 您可以通过遵循我的build议来连接您的系统。
玩的开心!
我创build了三个列表:
这些只是一个问题:
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分钟。