如何卸载除默认Ubuntu软件包以外的所有软件包?


14

我有一个配备8 GB SSD的Dell Mini 9。几年前,我安装了Lucid,并且每次都进行升级,现在我的硬盘几乎快满了。我看到安装了新的默认程序,但是旧的程序没有自动删除(例如Banshee和Rhythmbox)。现在,我可以从头开始安装新发行版,但是如果有一种避免麻烦的方法,那就太好了。我不介意我多年以来安装的程序是否被删除,它们只是少数几个,我可以很快地重新安装它们。



3
我最好的选择是清除所有已安装的软件包,然后安装ubuntu-desktopmetapackage。之所以发表评论,是因为我不知道如何指定所有软件包,但是如果您能够删除它们并安装ubuntu-desktop,则将使用当前Ubuntu版本的默认安装。
Oxwivi

Answers:


12

这个问题解决方案也可能会解决您的问题。

Ubuntu 12.04之前的版本

从一个gnome-terminal做:

cat filesystem.manifest-desktop | awk '{print $1}' | sort > default.txt

这将摆脱软件包的版本,并为您提供一个排序列表default.txt,其中包含默认情况下安装的所有软件包。如链接的问题所述,请记住,在Ubuntu的安装过程中安装更新和/或受限制的软件包时,可能会更改默认安装。

Ubuntu 12.04

上面的步骤有所更改。要获取最初安装的软件包的列表,您需要解压缩两个文件:

  1. 文件系统清单
  2. filesystem.manifest-删除

要获得所需的内容,您需要从前者中删除后者:

comm -3 <(cat filesystem.manifest | awk '{print $1}' | sort) <(cat filesystem.manifest-remove | sort) > default.txt

现在继续像12.04之前的版本:

dpkg --get-selections | awk '{print $1}' | sort > current.txt

这将为您提供当前所有已安装软件包的排序列表current.txt

diff -u default.txt current.txt | grep "^+[^+]" | cut -c 2- > installed.txt
diff -u default.txt current.txt | grep "^-[^-]" | cut -c 2- > uninstalled.txt

这将使您获得两个软件包列表之间的差异,其中,installed.txt包含不属于默认安装的所有软件包,而uninstalled.txt包含与默认安装相比缺少的所有软件包。


谢谢,但是我想我已经创建了一个依赖项,我将从头开始安装。您的方法似乎可行。
qwazix 2011年

2
谢谢您的回答,这帮了我很多!供将来用户参考:在Ubuntu CD的casper /文件夹下可以找到filesystem.manifest-desktop。除此之外,此方法非常完美,再次感谢!
Tovi7 2012年

1

如果您坚持要手动删除那些软件包,则可以启动Ubuntu Software Center甚至是陈旧但风险更高的Synaptic,浏览“已安装”部分并开始删除您认为不需要的任何东西。这可能包括所有旧程序,甚至包括当前安装中的程序,但您永远不会使用。

我敢打赌,这大约是10左右,所以您想删除它,可能要花15分钟,


2
这将无助于查找和选择默认的包装清单。
Oxwivi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.