What is the function of the dpkg command in Ubuntu?
The dpkg command is the core, low-level package
management foundation of the Ubuntu Linux ecosystem, responsible for
installing, building, removing, and managing individual Debian software
packages (.deb files). While higher-level tools like
apt and apt-get are more commonly used for
day-to-day operations because they automatically download packages from
the internet and resolve complex software dependencies, they ultimately
rely on dpkg to perform the actual installation and removal
of software on the local system. Understanding dpkg is
essential for advanced system administration, troubleshooting broken
installations, and handling offline package management.
Direct Package Installation and Removal
Unlike apt, which fetches software from remote
repositories, dpkg operates strictly on local files. If a
user downloads a standalone .deb package directly from a
developer’s website, dpkg is the tool used to install
it.
- Installation: Running
sudo dpkg -i package_name.debunpacks the software, places the binaries and configuration files into their respective system directories, and configures the application. - Removal: Running
sudo dpkg -r package_nameremoves the application files from the system but leaves the configuration files intact, whilesudo dpkg -P package_name(purge) completely erases both the application and its configurations.
Querying the Package Database
Another critical function of dpkg is maintaining a
comprehensive local database of every package installed on the Ubuntu
system. This allows users and system administrators to inspect the state
of their software ecosystem.
| Command | Function |
|---|---|
dpkg -l |
Lists all installed packages, their version numbers, and short descriptions. |
dpkg -s package_name |
Displays the detailed status and dependency information of a specific package. |
dpkg -L package_name |
Lists every file installed to the system by a specific package. |
dpkg -S /path/to/file |
Search tool that identifies which package owns a specific file on the system. |
The Dependency Limitation
The primary behavioral characteristic of dpkg is that it
does not possess “dependency resolution” capabilities. Software packages
often require other supporting software libraries to function. If a user
attempts to install a .deb file using dpkg and
those required libraries are missing, dpkg will halt the
installation, report a dependency error, and leave the package in an
unconfigured, broken state.
To resolve this, administrators typically follow a failed
dpkg installation with the command
sudo apt -f install. This commands the higher-level
Advanced Package Tool (apt) to look at the database state
left behind by dpkg, safely download the missing
dependencies from the official Ubuntu repositories, and finalize the
installation process.