Install and remove
sudo dpkg -i <file.deb>
Install or upgrade from a file
sudo dpkg -i <dir>/*.deb
Install several files at once
sudo dpkg -R <dir>
Install every .deb in a directory
sudo dpkg -r <pkg>
Remove, keep config files
sudo dpkg -P <pkg>
Purge: remove with config files
sudo dpkg --configure -a
Finish interrupted configuration
Run this after an aborted install; then sudo apt -f install
fixes missing dependencies.
sudo dpkg-reconfigure <pkg>
Rerun a package's configuration questions
Part of debconf; may need installing.
sudo dpkg --configure <pkg>
Configure one unpacked package
sudo dpkg --unpack <file.deb>
Unpack without configuring
sudo dpkg -i --force-depends <file.deb>
Install despite unmet dependencies
Leaves the system inconsistent; use only to unblock a repair.
sudo dpkg -i -E <file.deb>
Skip if same version is installed
sudo dpkg -i -G <file.deb>
Refuse to downgrade
dpkg --force-help
List all --force- options
Query installed
dpkg -l
List all packages
dpkg -l '<pattern>'
List packages matching a glob
dpkg -s <pkg>
Show status, version, depends
dpkg -L <pkg>
List files owned by a package
dpkg -S <path>
Find the package owning a file
dpkg -l | grep ^ii
Only installed packages
dpkg -l | grep ^rc
Removed packages with config left
dpkg -C
Audit for half-installed packages
dpkg -V [<pkg>]
Verify installed files against the database
dpkg --print-architecture
Native architecture
dpkg --print-foreign-architectures
Enabled extra architectures
dpkg --add-architecture <arch>
Enable a foreign architecture
Run apt update afterwards.
dpkg --compare-versions <a> lt <b>
Test version order (exit code)
Inspect .deb files
dpkg-deb -I <file.deb>
Show control info
dpkg-deb -c <file.deb>
List contained files
dpkg-deb -W <file.deb>
Name and version only
dpkg-deb -f <file.deb> <field>
Print one control field
dpkg-deb -x <file.deb> <dir>
Extract files without installing
dpkg-deb -e <file.deb> <dir>
Extract control files and scripts
dpkg-deb -R <file.deb> <dir>
Extract files and control together
dpkg-deb -b <dir> <file.deb>
Build a .deb from a tree
The tree needs a DEBIAN/control file.
dpkg --contents <file.deb>
Same as dpkg-deb -c