Apt-cache: How to list all installed packages with version number?

52

16

apt-cache dump --installed doesn't work, it lists uninstalled packages as well.

I want to list the install packages each by one line, with the installed version number.

Xiè Jìléi

Posted 2010-09-22T10:37:25.037

Reputation: 14 766

3bug #775771 restrict apt-cache search results to installed packages – bartolo-otrit – 2015-02-16T13:58:21.543

Answers

54

try dpkg -l

it lists you the packages, version and a short description.

kev

Posted 2010-09-22T10:37:25.037

Reputation: 801

1I like also apt-show-versions since it also shows which one is uptotdate. – malat – 2015-05-20T07:54:57.707

37

The simplest way is using dpkg, but it might show a few extraneous packages and it truncates long package names and version numbers:

dpkg -l

To list only correctly installed packages and not truncate names:

dpkg -l | grep '^ii'

To get more control over the output format, you can use dpkg-query:

dpkg-query -W -f '${status} ${package} ${version}\n' | \
sed -n 's/^install ok installed //p'

Gilles 'SO- stop being evil'

Posted 2010-09-22T10:37:25.037

Reputation: 58 319

13

Other command can be:

apt-show-versions

It also gives you info about the package state (up to date, upgradable, ...) and about the origin distribution (wheezy, jessie, ...). One can easily filter out packages which came from backports or other exotic repositories.

This program is packaged separately. Install it first with:

apt-get install apt-show-versions

SkyRaT

Posted 2010-09-22T10:37:25.037

Reputation: 474

This is really nice as it shows the version that a package could be upgraded to. +1. – Randall Cook – 2015-04-21T17:26:46.823

combined with apt-mark showmanual this gives you a nice and easy way to retrieve versions of all manually installed packages, see also this Askubuntu answer apt-mark showmanual > /tmp/versions && apt-show-versions | grep -f /tmp/versions

– Gregor – 2017-08-28T14:32:13.137

4

To list the names of each installed package, type as any user:

dpkg --get-selections

You will get an output like this :

accountsservice              install
aclinstall                   install
acpi-supportinstall          install
acpidinstall                 install
...

To remove the unecessary "install" character string, you can use sed :

dpkg --get-selections | sed 's:install$::'

And if yout want to save it to a file called InstalledPackages, you type this :

dpkg --get-selections | sed 's:install$::' > InstalledPackages

Rémi G.

Posted 2010-09-22T10:37:25.037

Reputation: 49

4

The following command lists the packages with their versions, and additionally it lets you set up a system with the same packages and versions later, using the pkg-selections.txt file generated here:

aptitude -q -F "%?p=%?V %M" --disable-columns search \~i > pkg-selections.txt

Each line will contain package name, version and an optional "A" if the package was installed automatically.

Source: "Cloning a Debian system - identical packages and versions". Also contains the script that sets up a system from pkg-selections.txt.

tanius

Posted 2010-09-22T10:37:25.037

Reputation: 515

1

If you do not have access to live system, and have a backup of root/ partition, you can :

root@backup_server /mnt/old_root/var/lib/dpkg/info # ls -la *.list | awk {'print $9'}| sed 's/.list//' >> /root/installed_app

Now this /root/installed_app contain all installed packages!

sasha2002

Posted 2010-09-22T10:37:25.037

Reputation: 19