This page is about the ways to list the installed packages in a Debian system and how to create a file with this list. This file can be uploaded to the web (i.e. from other computer with Internet connection) to download new packages.
List all installed packages
With version and architecture information, and description, in a table:
dpkg-query -l
Package names only, one per line:
dpkg-query -f '${binary:Package}\n' -W
List packages using a search pattern
It is possible to add a search pattern to list packages:
dpkg-query -l 'foo*'
Show status of all packages on the system
To check the status of all packages on your system:
dpkg-query -l '*' | less
This will show all packages (one line each) that are in various stages of installation (including packages that were removed but not purged) and packages just available from a repository. To show only installed packages:
dpkg -l | grep '^.i'
you can filter with grep to get results for "i".
You can also use:
apt-cache pkgnames
Or you can use dpkg to list the current package selections (the desired state of either installed or to be installed packages):
dpkg --get-selections
And store the list of software to a file called /backup/package-selections
dpkg --get-selections >/backup/package-selections
You can also find package information in the next directories (you can use mc or other FileManager to browse them):
/var/lib/apt/lists/*
/var/lib/dpkg/available: list of available packages from repositories.
/var/lib/dpkg/status: status of installed (and available) packages. This file contains information about whether a package is marked for removal or not, whether it is installed or not, etc. A package marked reinst-required is broken and requires reinstallation.
Restore installed software
After re-installing base system you can immediately re-install all software. You need dselect:
apt-get install dselect
Then you have to type following command:
dpkg --set-selections </backup/package-selections
Now that your list is imported use apt-get, Synaptic or other PackageManagement tools. To install the packages:
apt-get dselect-upgrade
All this with a single command:
aptitude install $(cat /backup/package-selections | awk '{print $1}')
See also
dpkg-query(1) manpage
debfoster - If dependency changes, debfoster ask if you want to remove the old package.
?AptZip