如何列出已安装大小的已安装软件?

我想在我的机器上有一个已安装软件的列表,其中包含它们所占用的磁盘空间。 我希望能够以最大/最小的顺序排序,但这不是必需的。

我是那种会安装软件来尝试它的人,而不是在我自己之后进行清理。

结果,我的7GB(Windows和我的数据在不同的分区,以及交换区域)Ubuntu 11.04分区正在受到影响,并且已经开始定期显示警告消息。

您可以在Synaptic中以图形方式执行此操作 安装synaptic

首先确保您启用了“已安装的大小”和“下载大小”列(如果需要,则只能启用一个)。

  • 要执行此操作,请转到“设置”>“首选项” ,然后选择“ 列和字体” ,然后勾选要查看的列。
  • 然后单击确定

首选项窗口

  • 启用它们后,您可以通过单击列列出已下载/安装大小的已安装软件包。

列

  • 请注意:我没有以这种方式列出我的软件包,但是它有效。
dpkg-query -W -f='${Installed-Size;8} ${Package}\n' | sort -n 

显示按大小排序的包列表

首选解决方案

我找到了一个较短的答案,不需要aptitude

 dpkg-query -Wf '${Installed-size}\t${Package}\n' | column -t 

旧的解决方案

aptitudeshow命令能够显示包的安装大小。

我有这个小脚本,它利用aptitude (单独安装)来获得所有已安装包大小的列表:

 #!/bin/bash export LC_ALL=C aptitude show $(dpkg-query -Wf '${Package}\n') | awk '$1 == "Package:" { name = $2 } $1 == "Uncompressed" { printf("%10s %s\n", $3, name) }' | awk '$1 ~ /k/ { $1 *= 1 }; $1 ~ /M/ { $1 *= 1024 } { printf("%9d %s\n", $1, $2)}' 

大小以千字节表示,并且是近似值,由aptitude show pkg返回。

使用单个awk调用可以改进脚本(但我很懒:-)

另一个选择是使用debian-goodies包中的dpigs应用程序:

 NAME dpigs - Show which installed packages occupy the most space SYNOPSIS dpigs [options] DESCRIPTION dpigs sorts the installed packages by size and outputs the largest ones. Per default dpigs displays the largest 10 packages. You can change this value by using the -n option (see "OPTIONS"). The information is taken from the dpkg status file with grep-status(1). OPTIONS -h, --help Display some usage information and exit. -n, --lines=N Display the N largest packages on the system (default 10). -s, --status=FILE Use FILE instead of the default dpkg status file (which is /var/lib/dpkg/status currently). -S, --source Display the largest source packages of binary packages installed on the system. 

您可以在基于终端的包管理器Aptitude中查看此类列表:

  1. sudo aptitude打开能力。
  2. 点击S (大写S)并在提示符下输入~installsize 。 ( ~用于降序排序;如果你想要最小的包,你可以省略它。)
  3. 到目前为止,包在每个层次级别内按大小排序。 要获得概述,您需要尽可能少的级别。 点击G并在提示符下输入status 。 现在,所有已安装的软件包都在一个部分中,按大小排序。

这里的其他答案列出了已安装和已卸载的软件包。

以下仅列出当前安装的:

 dpkg-query -W -f='${Installed-Size;8}\t${Status;1}\t${Package}\n' | grep -v "\sd\s" | sort -n | cut -f1,3- 

它能做什么:

  1. 查询所有包的安装大小,状态和名称
  2. 过滤掉卸载的包
  3. 从输出中剪切状态列

输出类似于:

 ... 22376 vim-runtime 26818 linux-image-3.8.0-32-generic 28673 libc6-dbg 35303 libpython3.3-dev 40303 valgrind 40731 linux-firmware 41516 smbclient 58704 linux-headers-3.8.0-26 58733 linux-headers-3.8.0-32 93566 linux-image-extra-3.8.0-32-generic