Advanced Package Mgmt with dpkg command [Cheat Sheet]


Written by - Rohan Timalsina
Reviewed by - Deepak Prasad

Introduction to dpkg command

In the world of Debian-based Linux distributions, the dpkg command stands out as a powerful tool for package management. Derived from the term "Debian package", dpkg allows users to install, remove, and inspect software packages, ensuring a seamless software management experience on systems like Ubuntu, Debian, and their derivatives.

Our journey into understanding this command will encompass its multifaceted capabilities. We'll start by looking into the basics of how one can install dpkg or ensure it's available on their system. While dpkg comes pre-installed on many distributions, it's always good to know how to get it up and running if need be.

Next, we'll delve deep into the numerous functions that the dpkg command offers. From simple tasks like checking installed packages to more advanced operations like resolving package conflicts and auditing, we have a lot on our plate.

 

Checking Installed Packages

Knowing which packages are installed on your system is a fundamental aspect of package management. The dpkg command can help you ascertain this information swiftly and efficiently.

Listing All Installed Packages

To list all the installed packages on your system, you can use the following dpkg command:

dpkg -l

This command will display a comprehensive list of all packages, along with their statuses and descriptions.

Checking if a Specific Package is Installed

If you need to check whether a specific package is installed, you can filter the results using grep with the dpkg command as shown below:

dpkg -l | grep package_name

Replace package_name with the name of the package you wish to check.

 

Installing Packages with dpkg

The dpkg command is not only about querying packages; it also excels at installing them.

Installing a Single Package

To install a single package, you can execute the following dpkg command:

sudo dpkg -i package_name.deb

Ensure that the .deb file is in your current directory or provide the full path to the file.

Installing Multiple Packages

Installing multiple packages is also a breeze with the dpkg command. Here’s how to do it:

sudo dpkg -i package1.deb package2.deb package3.deb

List all the packages you want to install, separating each with a space.

 

Removing Packages

Uninstalling or removing packages is a common task in package management, and the dpkg command offers a variety of options to perform this task according to your requirements.

Removing a Package without Configuration Files

When you want to uninstall a package but keep the configuration files (which might be used again later), use the following dpkg command:

sudo dpkg -r package_name

This command will remove the binary files of the package, leaving the configuration files untouched.

Removing a Package along with its Configuration Files

If you aim to remove both the binary and configuration files of a package, execute this dpkg command:

sudo dpkg -P package_name

This command ensures that both the package and its global configuration files are removed, providing a clean uninstallation.

 

Purging Packages

Understanding the difference between removing and purging packages is essential for effective package management.

Difference between Remove and Purge

  • Remove: Uninstalls the package, keeping the configuration files.
  • Purge: Uninstalls the package along with its configuration files, ensuring no traces are left.

How to Purge a Package

To purge a package, meaning to remove the package along with its global configuration files, utilize the following dpkg command:

sudo dpkg --purge package_name

This command ensures that the package is entirely removed from your system, leaving no residual configuration files.

 

Handling Package Dependencies

Package dependencies are a crucial part of the software installation process. Understanding and managing dependencies effectively is essential for maintaining a healthy system.

  • Understanding Dependencies: Packages often rely on other packages to function correctly. These are called dependencies. The dpkg command doesn’t resolve dependencies automatically but provides insights into package dependencies.
  • Solutions for Unmet Dependencies: Sometimes you might encounter unmet dependencies while using the dpkg command. In such cases, you can use the following command to fix them:
sudo apt-get install -f

This command helps to correct broken dependencies, ensuring that all necessary packages are correctly installed.

 

Configuring Packages

Configuring packages is essential to ensure that software operates correctly by applying the necessary settings.

Reconfiguring an Installed Package

You can reconfigure an already installed package using the dpkg-reconfigure command as follows:

sudo dpkg-reconfigure package_name

This dpkg command will reconfigure the package, allowing you to modify its settings.

Configuring All Unconfigured Packages

To configure all packages that haven’t been configured yet, you can utilize the following dpkg command:

sudo dpkg --configure -a

Running this command ensures that all packages on your system are properly configured, promoting system stability and performance.

 

Inspecting and Extracting Package Files

The dpkg command offers functionality that extends beyond package installation and removal. It allows users to inspect and extract files from packages, providing deeper insights into package contents and structure.

Extracting Files without Installing

If you wish to extract the contents of a package without installing it, you can use the following dpkg command:

dpkg-deb --extract package_name.deb /destination_directory

This command will extract the files contained in the package to a specified directory.

Viewing the Contents of a Package

To view the list of files contained in a package, employ the following dpkg command:

dpkg-deb --contents package_name.deb

This command displays the contents, helping you understand the files and directories included in the package.

 

Querying Package Databases

Querying package databases is essential to gather detailed information about installed packages or search for available packages.

Getting Details of an Installed Package

To get detailed information about an installed package, utilize this dpkg command:

dpkg -s package_name

This command will provide extensive details, such as the description, configuration, and status of the specified package.

Searching for Packages

If you want to search for packages related to a specific keyword, use the following dpkg command:

dpkg -l | grep keyword

This will list all the packages related to the specified keyword, helping you identify the exact package you might be looking for.

 

Managing Package Status

Ensuring that the status of packages on your system is in good standing is imperative for system stability and performance. The dpkg command offers tools to manage and resolve package statuses effectively.

Checking the Status of Packages

To check the status of an installed package, you can use the following dpkg command:

dpkg --status package_name

This command reveals detailed status information about the specified package, helping understand its current standing within the system.

Fixing Broken Packages

Broken packages can hamper system functionality. To fix them, execute this command:

sudo dpkg --configure -a

This dpkg command attempts to fix broken packages by configuring them, resolving potential issues caused due to incomplete installations or removals.

 

Handling Conflicts and Breaks

Conflict resolution in packages is crucial to prevent system instability or malfunction.

Identifying Conflicts

Identifying package conflicts can be achieved by checking the package status and looking for any indication of breaks or conflicts using:

dpkg --status package_name

This dpkg command will show the status, enabling you to spot if there are conflicts or breaks involving the package.

Resolving Package Conflicts

Package conflicts resolution is generally done manually, by identifying the conflicting packages and then making decisions based on priority and dependencies. Removing or updating the conflicting package using dpkg commands such as dpkg -r or dpkg -i might be necessary.

sudo dpkg -r conflicting_package_name
sudo dpkg -i new_package_version.deb

These commands help remove the old conflicting package and install the updated version, resolving the conflict.

 

Downgrading Packages

Downgrading a package involves reverting to an older version of that package, and this is facilitated using the dpkg command.

Process for Downgrading

To downgrade a package, first, obtain the .deb file of the older version and then use the following command:

sudo dpkg -i older_version_package.deb

This dpkg command will install the specified older version, effectively downgrading the package.

Risks and Precautions

Downgrading comes with its risks, such as potential dependency issues or functionality loss. Always ensure compatibility and backup necessary data before proceeding with the downgrade.

 

Auditing Packages

Auditing packages involves verifying their integrity and reviewing historical data related to package installation or removal.

Verifying Package Integrity

Verifying the integrity of the package files can be done using the dpkg command, ensuring they have not been tampered with.

debsums package_name

This command checks the integrity of the installed package files against the checksums.

Debugging dpkg Commands

Debugging can be done using various options with the dpkg command to get more verbose output and understand what’s happening.

dpkg -Dh

This dpkg command will show the debugging option helping in understanding and resolving issues.

 

Advanced dpkg Commands

The dpkg command provides a suite of advanced functionalities allowing for intricate management and customization of packages and the dpkg system itself.

Forced Installs and Removals

The force options in dpkg allow you to override certain checks and operations during package installation or removal.

sudo dpkg --force-all -i package_name.deb

This dpkg command will forcefully install a package, bypassing warnings or errors that might normally prevent installation.

Manual Package Manipulation

Dpkg allows for manual intervention and manipulation of package files and details.

sudo dpkg --update-avail package_info_file

This dpkg command updates the dpkg database manually with package information from a specified file.

 

Customizing dpkg Behaviour

Dpkg's behavior can be customized using environment variables and configuration files, tailoring its operation to specific needs and preferences.

Using Environment Variables

Environment variables can be used to alter the behavior of the dpkg command.

sudo DPKG_ROOT=directory dpkg -i package_name.deb

This command will install a package to a specified root directory, influenced by the DPKG_ROOT environment variable.

Configuration Files and Options

Dpkg uses configuration files that can be customized to modify its default behavior.

sudo dpkg --set-selections < selections_file

This dpkg command sets package selections based on a file, allowing for bulk configuration of package states.

 

Frequently Asked Questions on dpkg command

What is the dpkg command used for in Debian-based distributions?

dpkg is a package management tool used to install, remove, and manage packages in Debian-based distributions. It works with .deb files and directly manages the packages on the system.

How do I install a package using the dpkg command?

You can install a package by using sudo dpkg -i package_name.deb. Replace package_name.deb with the name of your package.

How can I remove a package using dpkg?

To remove a package, use sudo dpkg -r package_name. This will remove the package but keep the configuration files.

What command should I use to list all installed packages?

You can list all installed packages using dpkg -l.

How do I downgrade a package using dpkg?

Downgrade a package by installing an older version using sudo dpkg -i older_version_package.deb.

How do I fix broken packages with dpkg?

Use sudo dpkg --configure -a to fix broken packages. This command will configure pending packages.

How can I check the version of an installed package?

Check the version of an installed package with dpkg -s package_name.

How do I find out whether a specific package is installed?

To check if a specific package is installed, use dpkg -l | grep package_name.

Can I force the installation of a package that has dependency issues?

Yes, by using sudo dpkg --force-all -i package_name.deb, but it might make the system unstable.

How can I configure an already installed package?

To reconfigure an already installed package, use sudo dpkg-reconfigure package_name. It will allow you to modify the package settings.

 

Summary

The dpkg command is a robust and comprehensive tool essential for package management in Debian-based Linux distributions. It allows for the installation, removal, and management of packages directly, working primarily with .deb files. Key functionalities include installing and removing packages, fixing broken packages, handling dependencies, and configuring and reconfiguring packages. Advanced features, such as forced installs, manual package manipulation, and customization using environment variables and configuration files, showcase the flexibility and depth of dpkg. Essential commands range from basic installations (dpkg -i) to advanced manipulations and audits for ensuring system stability and package integrity.

Further Reading Resources

 

Views: 31

Rohan Timalsina

He is proficient in a wide range of skills, including Page Builder Plugins such as Elementor, Beaver Builder, Visual Composer, and Divi Builder. His expertise extends to Front End Development with HTML5/CSS3, JavaScript, Bootstrap, and React.js. You can reach out to him on LinkedIn or check his projects on GitHub page.

Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can send mail to admin@golinuxcloud.com

Thank You for your support!!

Leave a Comment