When you are running out of space in your system, you might want to check who’s the major contributor to get out of the issue. This can be analyzed in two ways.
Initially everyone try to find out the large files, it could be log files, etc, the other option is application/packages installed size .
Is it easy to identify? Yes, but you need some understanding.
In Linux, package manager is one of the important and handy tool, which allows users to perform most of the action such as package installation, remove, search, upgrade, etc.
Package manager is playing a major role in these activity so, we should have hands on experience in the package management tool.
Below are the famous package managers for Linux.
- YUM Package Manager
- DNF Package Manager
- APT Package Manager
- APT-GET Package Manager
- Zypper Package Manager
- Pacman Package Manager
- RPM Package Manager
- DPKG Package Manager
How to list installed packages order by size in CentOS/RHEL/Fedora Systems using rpm Command
RHEL, CentOS, openSUSE & Fedora systems are using RPM packages hence we can use the rpm Package Manager to get this information.
RPM stands for Red Hat Package Manager is a powerful, command line Package Management utility for Red Hat based system such as CentOS, Oracle Linux & Fedora, Some of the other Linux distributions also using RPM packages openSUSE, Mageia & Scientific Linux.
The RPM utility allows you to install, upgrade, remove, query & verify the packages on Linux system/server.
RPM files comes with .rpm extension. RPM package built with required libraries and dependency which will not conflicts other packages were installed on your system.
# rpm -qa --queryformat '%10{size} - %-25{name} \t %{version} \t %{os} \n' | sort -rh | head -25 | awk '{print $1/1024/1024, $2, $3, $4}'
133.078 - kernel 2.6.32
131.008 - kernel 2.6.32
131.003 - kernel 2.6.32
107.227 - glibc-common 2.12
102.25 - java-1.8.0-openjdk-headless 1.8.0.171
58.1633 - kernel-firmware 2.6.32
40.1377 - samba-client 3.6.23
39.3547 - python36u-libs 3.6.5
38.1399 - rh-python35-python-libs 3.5.1
36.4767 - samba-common 3.6.23
33.6483 - perl 5.10.1
21.9148 - python-libs 2.6.6
21.1606 - vim-common 7.4.629
18.5959 - gcc 4.4.7
15.0838 - redhat-logos 60.0.14
14.5824 - git 1.7.1
12.5136 - glibc 2.12
12.2767 - coreutils 8.4
10.754 - iso-codes 3.16
9.73368 - postfix 2.6.6
9.54788 - cpp 4.4.7
9.37589 - binutils 2.20.51.0.2
9.00094 - selinux-policy 3.7.19
8.89512 - cracklib-dicts 2.8.16
8.75903 - nagios 4.3.4
How to list installed packages order by size in Debian/Ubuntu Systems using dpkg-query Command
Debian/Ubuntu based systems are using DEB packages hence we can use the dpkg Package Manager to get this information.
dpkg stands for Debian package manager (dpkg). dpkg is a command-line tool to install, build, remove and manage Debian packages. dpkg uses Aptitude (primary and more user-friendly) as a front-end to perform all the actions.
Other utility such as dpkg-deb and dpkg-query uses dpkg as a front-end to perform some action.
$ dpkg-query --show --showformat='${Installed-Size}\t${Package}\n' | sort -rh | head -25 | awk '{print $1/1024, $2}'
257.928 openjdk-9-jre-headless
220.642 linux-modules-4.16.7-041607-generic
205.605 linux-firmware
179.729 google-chrome-stable
172.762 docker-ce
160.827 firefox
157.745 linux-image-extra-4.13.0-46-generic
157.745 linux-image-extra-4.13.0-45-generic
157.743 linux-image-extra-4.13.0-43-generic
157.74 linux-image-extra-4.13.0-39-generic
157.74 linux-image-extra-4.13.0-38-generic
127.182 libreoffice-core
122.828 libgl1-mesa-dri
121.062 thunderbird
120.862 papirus-icon-theme
111.339 golang-1.8-go
95.3184 openjdk-8-jre-headless
89.8867 inkscape
84.6797 fonts-noto-cjk
72.3418 linux-headers-4.16.7-041607
71.9678 linux-headers-4.13.0-46
71.9678 linux-headers-4.13.0-45
71.9648 linux-headers-4.13.0-43
71.9541 linux-headers-4.13.0-39
71.9434 linux-headers-4.13.0-38
How to list installed packages order by size in Debian/Ubuntu Systems using aptitude Command
Aptitude is a text-based interface to the Debian GNU/Linux package system. It allows the user to view the list of packages and to perform package management tasks such as installing, upgrading, and removing packages. Actions may be performed from a visual interface or from the command-line.
$ aptitude search "~i" --display-format "%p %I" --sort installsize | tail -25 linux-image-4.13.0-46-generic 72.6 MB linux-headers-4.13.0-38 75.4 MB linux-headers-4.13.0-39 75.4 MB linux-headers-4.13.0-43 75.5 MB linux-headers-4.13.0-46 75.5 MB linux-headers-4.13.0-45 75.5 MB linux-headers-4.16.7-041607 75.9 MB fonts-noto-cjk 88.8 MB inkscape 94.3 MB openjdk-8-jre-headless 99.9 MB golang-1.8-go 117 MB papirus-icon-theme 127 MB thunderbird 127 MB libgl1-mesa-dri 129 MB libreoffice-core 133 MB linux-image-extra-4.13.0-39-generic 165 MB linux-image-extra-4.13.0-38-generic 165 MB linux-image-extra-4.13.0-43-generic 165 MB linux-image-extra-4.13.0-45-generic 165 MB linux-image-extra-4.13.0-46-generic 165 MB firefox 169 MB google-chrome-stable 194 MB docker-ce 197 MB linux-firmware 216 MB linux-modules-4.16.7-041607-generic 231 MB
How to list installed packages order by size in Debian/Ubuntu Systems using dpigs Command
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.
$ dpigs -H 220.6M linux-modules-4.16.7-041607-generic 205.6M linux-firmware 179.7M google-chrome-stable 172.8M docker-ce 160.8M firefox 157.7M linux-image-extra-4.13.0-46-generic 157.7M linux-image-extra-4.13.0-45-generic 157.7M linux-image-extra-4.13.0-43-generic 157.7M linux-image-extra-4.13.0-39-generic 157.7M linux-image-extra-4.13.0-38-generic
How to list installed packages order by size in Debian/Ubuntu Systems using wajig Command
Wajig is a simplifed and more unified command-line interface for package management. It adds a more intuitive quality to the user interface. Wajig also provides a graphical user interface, known as gjig.
$ wajig size | tail -25 | sed -e 's:,::g' | awk '{print $1, $2/1024}'
linux-headers-4.13.0-38 71.9434
linux-headers-4.13.0-39 71.9541
linux-headers-4.13.0-43 71.9648
linux-headers-4.13.0-45 71.9678
linux-headers-4.13.0-46 71.9678
linux-headers-4.16.7-041607 72.3418
fonts-noto-cjk 84.6797
inkscape 89.8867
openjdk-8-jre-headless 95.3184
golang-1.8-go 111.339
papirus-icon-theme 120.862
thunderbird 121.062
libgl1-mesa-dri 122.828
libreoffice-core 127.182
linux-image-extra-4.13.0-38-generic 157.74
linux-image-extra-4.13.0-39-generic 157.74
linux-image-extra-4.13.0-43-generic 157.743
linux-image-extra-4.13.0-46-generic 157.745
linux-image-extra-4.13.0-45-generic 157.745
firefox 160.827
docker-ce 172.762
google-chrome-stable 179.729
linux-firmware 205.605
linux-modules-4.16.7-041607-generic 220.642
openjdk-9-jre-headless 257.928
How to list installed packages order by size in Arch Linux based Systems using pacman command
Arch Linux based systems are using pacman package manager hence we can use the pacman Package Manager to get this information.
pacman stands for package manager utility (pacman). pacman is a command-line utility to install, build, remove and manage Arch Linux packages. pacman uses libalpm (Arch Linux Package Management (ALPM) library) as a back-end to perform all the actions.
# pacman -Qi | awk '/^Name/{name=$3} /^Installed Size/{print $4$5, name}' | sort -hr | head -25
296.64MiB linux-firmware
144.20MiB python
105.43MiB gcc-libs
72.90MiB python2
66.91MiB linux
57.47MiB perl
45.49MiB glibc
35.33MiB icu
34.68MiB git
30.96MiB binutils
29.95MiB grub
18.96MiB systemd
13.94MiB glib2
13.79MiB coreutils
13.41MiB python2-boto
10.65MiB util-linux
9.50MiB gnupg
8.09MiB groff
8.05MiB gettext
7.99MiB texinfo
7.93MiB sqlite
7.15MiB bash
6.50MiB lvm2
6.43MiB openssl
6.33MiB db
How to list installed packages order by size in Arch Linux based systems using pacgraph
Pacgraph utility allows Arch Linux users to get installed package by size.Also, It draws a pretty picture of your installed packages.
# pacgraph -c | head -25 Autodetected Arch. Loading package info Total size: 1221MB 367MB linux 144MB pacgraph 98MB cloud-init 37MB grub 35MB icu 34MB git 31698kB binutils 19337kB pacman 11029kB man-db 8186kB texinfo 8073kB lvm2 7632kB nano 7131kB openssh 5735kB man-pages 3815kB xfsprogs 3110kB sudo 3022kB wget 2676kB tar 2626kB netctl 1924kB parted 1300kB procps-ng 1248kB diffutils

Thx for this overview