Limited Time Offer!
For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!
The dpkg-query
command is used in Debian-based Linux distributions (like Ubuntu, Debian, Kali Linux) to query the dpkg
database for information about installed packages. It is useful when you need to check package details, file locations, or dependencies.
Unlike dpkg
, which is mainly used for installing or removing packages, dpkg-query
is purely for querying the package database.
1. List All Installed Packages
dpkg-query -l
โ What it does:
-l
โ Lists all installed packages with their status, version, and architecture.
๐ Example Output:
ii git 2.34.1 amd64
ii google-chrome-stable 96.0.4664.45 amd64
ii apache2 2.4.41-4ubuntu amd64
ii
โ Means the package is installed properly.rc
โ Means the package was removed, but config files remain.
๐ก Great for checking which packages are installed on your system.
2. Check If a Specific Package is Installed
dpkg-query -l package-name
โ What it does:
- Searches for a specific package in the installed package list.
๐ Example:
dpkg-query -l git
๐ Output (if installed):
ii git 2.34.1 amd64 Distributed version control system
๐ If the package is not installed, output:
No packages found matching git.
๐ก Useful before installing a package to see if it’s already installed.
3. Get Detailed Information About a Package
dpkg-query -s package-name
โ What it does:
-s
(status) โ Displays detailed information about the installed package.
๐ Example:
dpkg-query -s apache2
๐ Output Example:
Package: apache2
Status: install ok installed
Version: 2.4.41-4ubuntu
Architecture: amd64
Maintainer: Ubuntu Developers
Description: Apache HTTP Server
๐ก Useful for checking the installed version, maintainer, and description.
4. List Files Installed by a Package
dpkg-query -L package-name
โ What it does:
-L
(list files) โ Shows all files installed by a package.
๐ Example:
dpkg-query -L apache2
๐ Sample Output:
/.
/etc/apache2
/etc/apache2/apache2.conf
/usr/sbin/apache2
/usr/lib/apache2
๐ก Useful when searching for a packageโs configuration files or executables.
5. Find the Package That Owns a Specific File
dpkg-query -S /path/to/file
โ What it does:
-S
(search) โ Finds which installed package owns a specific file.
๐ Example:
dpkg-query -S /usr/bin/git
๐ Output:
git: /usr/bin/git
๐ก Useful for discovering which package installed a particular file.
6. Show Package Dependencies
dpkg-query -W -f='${Package} ${Depends}\n' package-name
โ What it does:
-W
โ Queries the package database.-f='${Package} ${Depends}\n'
โ Formats the output to show package dependencies.
๐ Example:
dpkg-query -W -f='${Package} ${Depends}\n' apache2
๐ Output Example:
apache2 apache2-bin, apache2-data, apache2-utils
๐ก Useful for checking dependencies before installing or troubleshooting missing packages.
7. Check Package Version
dpkg-query -W -f='${Package} ${Version}\n' package-name
โ What it does:
- Retrieves the installed version of a package.
๐ Example:
dpkg-query -W -f='${Package} ${Version}\n' firefox
๐ Output:
firefox 96.0+build1-0ubuntu
๐ก Helps to check if you need an update.
8. List Only Installed Packages (No Removed or Config Leftovers)
dpkg-query -W -f='${db:Status-Status}\t${Package}\n' | grep installed
โ What it does:
- Filters the list to show only installed packages, excluding removed ones.
๐ Example Output:
installed git
installed apache2
installed vim
๐ก Useful for listing active installed packages only.
9. List Installed Packages with Specific Architecture
dpkg-query -l | grep :amd64
โ What it does:
- Filters installed packages by architecture (e.g.,
amd64
,i386
,arm64
).
๐ Example Output:
ii firefox:amd64 96.0+build1-0ubuntu amd64
ii google-chrome-stable:amd64 96.0.4664.45 amd64
๐ก Useful for checking which packages are installed for a specific CPU architecture.
10. Export Installed Packages List
dpkg-query -W -f='${Package}\n' > installed_packages.txt
โ What it does:
- Exports a list of installed packages into
installed_packages.txt
.
๐ To restore on another system:
xargs sudo apt install -y < installed_packages.txt
๐ก Great for backups or system migration.
Final Thoughts
dpkg-query
is powerful for searching and analyzing installed packages.- Itโs faster than
dpkg
when querying package details. - Combine it with
grep
,awk
, orcut
for advanced filtering.