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.
try dpkg -l
it lists you the packages, version and a short description.
apt-show-versions
since it also shows which one is uptotdate
.
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'
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
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
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
.
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
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!
For anyone finding this question years later, like I did:
apt
you can do apt list --installed
for a pretty printed list.dpkg-query -W
without any formating options gives you package name
and version
.sed -En 's/^(Package|Version): //p' /var/lib/dpkg/status | paste - -
Will give you the same output as above. This works without debian/ubuntu tools (say Ubuntu rootfs is mounted from RHEL).