Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I would like to have a list the installed software on my machine, with the disk space consumed by them alongside. I would prefer to be able to order by largest/smallest, but that is not a necessity.

I am the sort of person who will install software to try it, and never clean up after myself.

As a result, my 7GB (Windows and my Data are on separate partitions, as well as a swap area) Ubuntu 11.04 partition is suffering, and has started regularly showing warning messages.

I have cleaned my browser cache, as well as everything under Package Cleaner in Ubuntu Tweak, and am left with 149.81 MB off free space.

share|improve this question
add comment

6 Answers 6

up vote 11 down vote accepted

You can do this graphically in Synaptic Install synaptic.

  • First ensure that you enabled the Installed Size and Download size columns (or only one if you want that one).

    • To do this, go to "Settings>Preferences" and choose "Columns and Fonts", then tick the columns you want to see.
    • Then click "OK".

Preferences window

  • Once they are enabled, you can list the packages you have installed by download/installed size by click on the column.

Columns

  • Please note: I do not have my packages listed in that way this screen shot, but it works.
share|improve this answer
    
This is precisely what i was looking for! Thanks a lot. –  Lewis Goddard Sep 20 '11 at 20:30
    
@LewisGoddard: you're welcome. –  RolandiXor Sep 20 '11 at 20:33
add comment

Preferred solution

I have found a shorter answer, not requiring aptitude:

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

Old proposed solution

The show command of aptitude is able to show the installed size of a package.

I have this little script, that make use of aptitude (to install separately) to have a list of all installed packages with sizes:

#!/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)}'

Size are expressed in kilobytes, and are approximate, as returned by aptitude show pkg.

The script can be improved using a single awk invocation (but I'm lazy :-)

share|improve this answer
    
You might want to throw a pipe to sort -nk1 on the end of that first command. –  Marco Ceppi Sep 20 '11 at 19:19
    
@MarcoCeppi: yeah, it was not the main concern of the OP, and I usually leave out ordering from my scripts, given that it may be applied in different ways as needed. –  enzotib Sep 20 '11 at 21:51
1  
This also lists software that is not installed anymore. Is there a way to remove these from the output? –  rumpel Jul 29 '12 at 17:15
    
Is you want a sum of these packages pipe that first command to cut -f 1 | paste -sd+ | bc. It's also possible to grep before cut so you can get installed size of only specific packages. –  MeanEYE Jun 8 '13 at 7:05
add comment
dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n

shows you a package list sorted by size

share|improve this answer
    
Would be better if you could mention the unit of the size too. –  i08in Feb 23 at 5:32
    
Probably kilobytes –  Andreas Hartmann Jun 25 at 14:17
add comment

You can view such a list in the terminal-based package manager Aptitude:

  1. Open Aptitude with sudo aptitude.
  2. Hit S (capital S) and type ~installsize at the prompt. (The ~ is for descending sort; you can omit it if you want the smallest packages on top.)
  3. By now, packages are sorted by size inside each hierarchical level. To get an overview, you'll want as few levels as possible. Hit G and enter status at the prompt. Now all installed packages are in a single section, sorted by size.
share|improve this answer
add comment

Another option is to use the dpigs application from the debian-goodies package:

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.
share|improve this answer
add comment

The other answers here list both installed and deinstalled packages.

The following lists only those which are currently installed:

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

What it does:

  1. Query the installed size, status and name of all packages
  2. Filter out deinstalled packages
  3. Cut the status column from the output

Output resembles:

...
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
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.