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


38

我想要一个列表,列出我机器上已安装的软件,以及它们占用的磁盘空间。我希望能够按最大/最小顺序订购,但这不是必须的。

我是那种会安装软件进行尝试的人,永远不会自己清理。

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


Answers:


23

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

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

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

首选项窗口

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

列

  • 请注意:此屏幕快照没有以这种方式列出我的软件包,但是可以使用。

这正是我想要的!非常感谢。
刘易斯·戈达德,

@LewisGoddard:不客气。
RolandiXor


18

首选解决方案

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

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

旧的建议解决方案

show命令aptitude能够显示软件包的安装大小。

我有这个小脚本,它利用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调用来改进脚本(但是我很懒:-)


1
您可能想sort -nk1在第一个命令的末尾添加一个管道。
Marco Ceppi

@MarcoCeppi:是的,这不是OP的主要关注点,我通常不考虑脚本的排序,因为可以根据需要以不同的方式应用它。
enzotib

1
这也列出了不再安装的软件。有没有办法从输出中删除这些?
伦佩尔

您是否需要将这些第一个命令传递给的软件包的总和cut -f 1 | paste -sd+ | bc。也可以在之前进行grep,cut以便仅获取特定软件包的安装大小。
MeanEYE

5

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

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.

3

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

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

1

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

以下仅列出了当前安装的那些:

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
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.