How to Install .deb Packages

Use the Command Line Tool 'dpkg' in a Debian-Based Linux Distribution

Command line showing dpkg package manager for Debian

Every Linux distribution based on Debian uses Debian packages as a method for installing and uninstalling the software. Debian packages are identified by the file extension .deb. They can be installed and uninstalled using graphical tools and the command line.

Why Install a .deb File Manually

Most of the time you use a package manager such as the Ubuntu Software Center, Synaptic, or Muon to install the software in Debian-based distributions. If you prefer to use the command line, you are likely to use apt-get.

Some applications aren't available in the repositories and have to be downloaded from the vendors' websites. Be careful about downloading and installing Debian packages from sources that do not exist in the distribution's repositories.

Some of the biggest applications are delivered in this format, including Google's Chrome web browser. For this reason, it is important to know how to install the packages manually.

Where to Get a .deb File

For demonstration purposes, you need a .deb file to install. 

This example uses the .deb file for a QR Code Creator. A QR code is one of those funny-looking symbols you see just about everywhere. When you focus on the QR Code with your mobile device, it takes you to a web page, almost like a hyperlink.

On the QR Code Creator page, there is a .deb file. Clicking on the link downloads the .deb file to your downloads folder.

How to Install .deb Packages

The tool used to install and uninstall Debian packages is called "dpkg." It is a command line tool. Through the use of switches, you can do many different things with it.

The first thing you want to do is install the package. Type the following into the command line:

sudo dpkg -i <packagename>

For example to install the QR Code Creator the command is as follows:

sudo dpkg -i qr-code-creator_1.0_all.deb

If you prefer, you can also use --install instead of -i as follows:

sudo dpkg --install qr-code-creator_1.0_all.deb

What Happens If It Breaks?

When you install a any type of package on a Linux system, there's a good chance that it's going to depend on other packages, often called dependencies. Dpkg doesn't have automatic dependency resolution, meaning that it won't pull the packages that your package requires. Often times, this leads to errors when installing a .deb package with dpkg.

There's a simple solution. After your install fails, run the following command to use the Apt package manager, which does have dependency resolution, to sort out the mess and fix anything that's broken.

sudo apt --fix-broken install

You can shorten that to:

sudo apt -f install

Apt will clean up what dpkg broke, and install both your package and its dependencies.

Installing With Apt

You do have another option when it comes to installing .deb packages on your system. The Apt package manager, the same one you use to update your system and install new packages from the Web, can also install packages locally on your system.

As previously discussed, Apt has the advantage of automatic dependency resolution, so you won't need to worry about things ever breaking in the first place. Apt will handle both your package and anything that it may need.

To use Apt, simply point it in the direction of whichever .deb package you want to install.

sudo apt install ~/Downloads/protonmail-bridge_1.1.6-1_amd64.deb

If you want to play it extra safe, you can add the "fix broken" flag from before to ensure that Apt gets everything.

sudo apt -f install ~/Downloads/protonmail-bridge_1.1.6-1_amd64.deb

What Is in a .deb File?

If you have ever wondered what makes up a .deb package, you can run the following command to extract the files from a package without installing it.

dpkg-deb -x qr-code-creator_1.0_all.deb ~/qrcodecreator

This command extracts the contents of the qr-code-creator package into a folder called qrcodecreator located in the home folder (/home/qrcodecreator). The destination folder qrcodecreator must already exist.

In the case of qr code creator, the contents are as follows:

  • usr
  • usr -> bin
  • usr -> bin -> qr-code-creator
  • usr -> share
  • usr -> share -> applications
  • usr -> share -> applications -> qr-code-creator.desktop
  • usr -> share -> doc
  • usr -> share -> doc -> qr-code-creator
  • usr -> share -> doc -> qr-code-creator -> changelog.gz
  • usr -> share -> doc -> qr-code-creator -> copyright
  • usr -> share -> man
  • usr -> share -> man -> man1
  • usr -> share -> man -> man1 -> qr-code-creator.1.gz
  • usr -> share -> pixmaps
  • usr -> share -> pixmaps -> qr-code-creator.png
  • usr -> share -> qr-code-creator

Removing .deb Packages

Remove a Debian package using the following command:

sudo dpkg -r <packagename>

If you want to remove the configuration files as well, use the following command:

sudo dpkg -P <packagename>

Apt can handle these too, and you won't need to remember the whole version number, just the actual name of the package.

sudo apt remove <packagename>

If you are using a Ubuntu-based distribution, just double-click on the .deb file, and it loads into the Software Center. Then, click install.