How do I install a .deb file via the command line?

up vote 1160 down vote accepted

Packages are manually installed via the dpkg command (Debian Package Management System). dpkg is the backend to commands like apt-get and aptitude, which in turn are the backend for GUI install apps like the Software Center and Synaptic.

Something along the lines of:

dpkg --> apt-get, aptitude --> Synaptic, Software Center

But of course the easiest ways to install a package would be, first, the GUI apps (Synaptic, Software Center, etc..), followed by the terminal commands apt-get and aptitude that add a very nice user friendly approach to the backend dpkg, including but not limited to packaged dependencies, control over what is installed, needs update, not installed, broken packages, etc.. Lastly the dpkg command which is the base for all of them.

Since dpkg is the base, you can use it to install packaged directly from the command line.

Install a package

sudo dpkg -i DEB_PACKAGE

For example if the package file is called askubuntu_2.0.deb then you should do sudo dpkg -i askubuntu_2.0.deb. If dpkg reports an error due to dependency problems, you can run sudo apt-get install -f to download the missing dependencies and configure everything. If that reports an error, you'll have to sort out the dependencies yourself by following for example How do I resolve unmet dependencies after adding a PPA?.

Remove a package

sudo dpkg -r PACKAGE_NAME

For example if the package is called askubuntu then you should do sudo dpkg -r askubuntu.

Reconfigure an existing package

sudo dpkg-reconfigure PACKAGE_NAME

This is useful when you need to reconfigure something related to said package. Some useful examples it the keyboard-configuration when you want to enable the Ctrl+Alt+Backspace in order to reset the X server, so you would the following:

sudo dpkg-reconfigure keyboard-configuration

Another great one is when you need to set the Timezone for a server or your local testing computer, so you use use the tzdata package:

sudo dpkg-reconfigure tzdata
  • 3
    Great info, had to find some way to install traceroute to help debug why my machine won't connect to the internet :) – Jason Nov 20 '13 at 15:01
  • 20
    Also helpful to note that once installed programs are usually found in /usr/bin, named after what was depackaged. – Chris Moschini Mar 31 '14 at 9:10
  • If I run sudo apt-get install texlive-latex-base, it has failed for months with "Hash Sum mismatch". I can download the .deb file from http://gb.archive.ubuntu.com/ubuntu/pool/main/t/texlive-base/texlive-latex-base-doc_2015.20150625-1ubuntu1_all.deb. If I install it using dpkg, would it subsequently be recognised (and updated) by apt-get. – user643722 Jan 19 '16 at 17:05
  • Hi @user643722 I was going to recommend deleting the cached version of that package but here you have an answer for the issue askubuntu.com/questions/41605/… – Luis Alvarado Jan 20 '16 at 3:05
  • 1
    dude you're awesome. so infrequently do I see linux answers that are so detailed.. when it comes to newbie questions it's important!! thanks – Elad Katz Feb 16 '17 at 8:12

Debian (.deb) packages are the packages that are used in Ubuntu. You can install any .deb package in your system. .deb files can generally be installed from your file manager (Nautilus) merely by clicking on them, since file associations with the default installer is already set in Ubuntu. These instructions are for those who wish to install packages from the command-line terminal (Terminal).

To install a downloaded Debian (Ubuntu) package (.deb): Open Terminal and type

sudo dpkg -i packagename.deb

To remove a Debian (Ubuntu) package (.deb):

sudo dpkg -r packagename

To Reconfigure/Repair an installed Debian (Ubuntu) package (.deb):

sudo dpkg-reconfigure packagename

My favourite is GDebi, available from both terminal/shell or graphical desktop.

screen-shot

I usually associate .deb files with GDebi as it is fast and efficient - especially compared to Ubuntu Software Center. One of the main feature of GDebi is it resolves dependencies and installs them.

For command-line run sudo gdebi <package.deb> to install a single deb file.

  • 5
    it checks for dependencies before installing, thx!! – Aquarius Power Nov 13 '14 at 3:18
  • Can gdebi even download the dependencies or we have to download them manually?? @Pandya – Jasser Aug 29 '15 at 10:27
  • Probably better for people moving in from the non-Linux background. – Nisheet Dec 27 '16 at 11:26
  • +1 for "it resolves dependencies and installs them" which is key. – Revetahw Jun 4 '17 at 16:54

DPKG commands

There are two actions, they are dpkg-query and dpkg-deb.

Install a package

# sudo dpkg -i {package_name}    
# sudo dpkg -i skype-ubuntu-precise_4.2.0.11-1_i386.deb

Remove a package

# sudo dpkg -r {package_name}
# sudo dpkg -r vlc

Remove a package and its configuration files

# sudo dpkg -P {package_name}
# sudo dpkg -P vlc

List all installed packages.

You can pipe the command to less (a pager) so you can more easily scroll the content:

# dpkg -l | less

Check if the package is installed or not

# dpkg -l {package_name}
# dpkg -l vlc

Check if the package is installed or not, and if it is, launch it:

# dpkg -l | vlc

See whether a package is installed or not

And this will show the location where the package will be installed. Here -S (capital S) to search whether the package was installed or not.

# sudo dpkg -S {package_name}
# sudo dpkg -S skype

Install a *.deb package from a specified location

Here -R is recursive. (Recursively handle all regular files matching the pattern *.deb found at specified directories and all of its subdirectories).

# sudo dpkg -R --install {package_location}
# sudo dpkg -R --install /home/sysadmin/soft

Show package details

Here -p (lowercase p) will show the package info:

# dpkg -p {package_name}
# dpkg -p apache2

View the content of a package

Use -c (lowercase c) to show the content:

# sudo dpkg -c {package_name}
# sudo dpkg -c skype-ubuntu-precise_4.2.0.11-1_i386.deb

Extract the *.deb package file

Use -x (lowercase x) to extract:

# dpkg -x {package_name} {location_were_to_extract}
# dpkg -x libqt4-phonon_4.6.3-4+squeeze1_i386.deb /home/sysadmin/

Extract and display the filenames contained in a package

Use -X (uppercase X) to display the content with extraction.

# dpkg -X {package_name} {location_were_to_extract}
# dpkg -X libqt4-phonon_4.6.3-4+squeeze1_i386.deb /home/sysadmin/

Display information about a package

Here -I stands for information:

# dpkg -I {package_name}
# dpkg -I libqt4-phonon_4.6.3-4+squeeze1_i386.deb

Reconfigure an already installed package

dpkg-reconfigure reconfigures packages after they already have been installed. Pass it the name(s) of a package or packages to reconfigure. It will ask configuration questions, much like when the package was first installed.

# dpkg-reconfigure postfix

This will reconfigure postfix the same way as when you installed it for the first time.

Need to know more about dpkg commands? Have a look at the manual page:

# man dpkg
  • 5
    "Check if the package is installed or not, and if it is, launch it: # dpkg -l | vlc" - this would only pipe a list of packages to vlc, with unpredictable results if it were installed; and no better than just typing vlc – Xen2050 Feb 7 '15 at 6:15

While dpkg -i indeed installs the package, it doesn't do any automatic dependency resolution, meanwhile there are two others alternatives, using gdebi, or the apt-get tool. To use the later just use:

sudo apt-get install /path/to/package.deb

Even if you are on the directory with the package you need to give a path using ./ at the start:

sudo apt-get install ./package.deb
  • 12
    This is probably the best answer. apt will prevent you from breaking your​ system if you don't have the correct dependencies. – mlainz May 15 '17 at 22:04
  • This command seems to select all existing packages. – Hibou57 Sep 23 '17 at 7:58
  • @Hibou57 there can't be any space in the package name. – Braiam Mar 5 at 20:18

A handy tip when installing a program like Libreoffice which has multiple .deb files in a folder is to use.

sudo dpkg -i *.deb
  • 1
    Never use this command. You have to manually remove all debs if want to remove that package. sudo apt remove example ,sudo apt autoremove and sudo dpkg -r *.deb doesn't work. – noone Sep 29 '17 at 14:55

Create your own script installer debInstaller as the following:

#!/bin/bash
dpkg -i "$@"
apt-get --yes --fix-broken install

Make the script executable with

chmod +x debInstaller

Then move it to some dirs in your PATH or add the current directory to your PATH.

I'm going to move it to /usr/bin

sudo cp debInstaller /usr/bin

Now you can install any .deb package using the command:

sudo debInstaller some-package.deb

The added value of this method is the solving the dependencies problem, since mostly you'll face some problems when you install a .deb with dpkg -i due to dependencies error, so you have to use apt-get install -f to solve it, this script will do the job for you, but here I used apt-get --yes --fix-broken install to automatically solve these errors without user intervention.

The gdebi command-line solution

Here's the best way to install a .deb file on Ubuntu on the command-line:

sudo gdebi skype.deb

If you don't have gdebi installed already, install it using sudo apt install gdebi-core.

Why gdebi?

gdebi will look for all the dependencies of the .deb file, and will install them before attempting to install the .deb file. I find this much preferable than sudo dpkg -i skype.deb && sudo apt install -f. The latter is much too eager to remove dependencies in certain situations. For instance, when I tried to install Skype, it attempted to remove 96 (!) packages, including packages like compiz and unity! gdebi gave a much clearer error message:

$ sudo gdebi skype.deb
Cannot install 'libqtgui:i386'

(Here is the solution to that particular issue, by the way.)

  • askubuntu.com/a/170557/158442 does say gdebi can be used from the command line – muru Dec 27 '16 at 11:59
  • @muru Yeah, but it's easy to miss because of the screenshot. Also, it doesn't explain the problems with dpkg -i skype.deb – Flimm Dec 27 '16 at 12:29

To install .deb files, use:

sudo dpkg -i filename.deb
sudo apt-get install -f
sudo dpkg -i filename.deb   

The second line is to fix broken packages if the installation fails, then, install again to complete the installation.

protected by Community Feb 20 '14 at 20:57

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.