问题描述
我想在我的机器上有一个已安装软件的列表,其中包含它们所占用的磁盘空间。我希望能够以最大/最小的顺序排序,但这不是必需的。
我是那种会安装软件来尝试它的人,而不是在我自己之后清理。
结果,我的7GB(Windows和我的数据在不同的分区,以及交换区域)Ubuntu 11.04分区正在受到影响,并且已经开始定期显示警告消息。
最佳解决方案
您可以在Synaptic中以图形方式执行此操作。
首先确保您启用了“已安装的大小”和“下载大小”列(如果需要,则只能启用一个)。
-
要执行此操作,请转到设置>首选项并选择“列”和“字体”,然后勾选要查看的列。
-
然后单击确定。
-
启用它们后,您可以通过单击列列出已下载/安装大小的已安装软件包。
-
请注意:我没有以这种方式列出我的软件包,但是它有效。
次佳解决方案
dpkg-query -W -f='${Installed-Size;8} ${Package}\n' | sort -n
显示按大小排序的包列表
第三种解决方案
首选解决方案
我找到了一个较短的答案,不需要aptitude
:
dpkg-query -Wf '${Installed-size}\t${Package}\n' | column -t
旧的解决方案
aptitude
的show
命令能够显示包的安装大小。
我有这个小脚本,它使用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.
第五种方案
您可以在terminal-based包经理Aptitude中查看此类列表:
-
使用
sudo aptitude
打开Aptitude。 -
点击
S
(大写S)并在提示符下键入~installsize
。 (~
用于降序排序;如果你想要最小的包,你可以省略它。) -
到目前为止,包在每个层次级别内按大小排序。要获得概述,您需要尽可能少的级别。点击
G
并在提示符下输入status
。现在所有已安装的软件包都在一个部分中,按大小排序。