How do I install a .deb
file via the command line?
12 Answers
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

- 211,503
-
4Great 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
-
35Also helpful to note that once installed programs are usually found in /usr/bin, named after what was depackaged. – Chris Moschini Mar 31 '14 at 09: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 fromhttp://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 http://askubuntu.com/questions/41605/trouble-downloading-packages-list-due-to-a-hash-sum-mismatch-error – Luis Alvarado Jan 20 '16 at 03:05
-
3If it's easier and better to install via
aptitude
orapt-get
(or simplyapt
), why aren't examples for these commands given here? – intuited Nov 18 '17 at 16:56 -
The question is about deb files not packages. I do understand the idea of showing everything in a single answer (am with you in this one) but the OP would need to rephrase the question. Good point btw. – Luis Alvarado Nov 18 '17 at 19:45
-
To get binaries associated with the package usually works just:
dpkg -L PACKAGE_NAME | egrep '/bin/|/sbin/'
, or just withgrep bin/
usually also works. – Pablo Bianchi May 26 '18 at 04:10 -
2With modern
apt
I would recommend doingsudo apt install ./package.deb
instead. This allows automatically installing all the dependencies and it does all the extra sanity checks thatdpkg
will not implement because it's a low level command. Note that without the prefix/
or./
some versions ofapt
may not understand that you're trying to refer to file name, not a package name from repository. – Mikko Rantalainen Mar 14 '23 at 12:18
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

- 2,298
-
3clicking on them doesn't work as of Ubuntu 22, it opens them as an archive – iopq Feb 20 '23 at 02:42
My favourite is GDebi, available from both terminal/shell or graphical desktop.
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
-
Can gdebi even download the dependencies or we have to download them manually?? @Pandya – Jasser Aug 29 '15 at 10:27
-
-
-
This should be the correct answer. Using
dpkg -i
requires deeper understanding of how the package system works. GDebi does things automatically.Additionally, for those who want a non-gui solution, gdebi has a -n, --non-interactive option. It's like dpkg but it checks for dependencies first and refuses to install if dependencies cannot be resolved.
– bamm Oct 27 '20 at 11:39 -
While dpkg -i
indeed installs the package, it doesn't do any automatic dependency resolution. Meanwhile there are two other alternatives, using gdebi
or the apt-get
tool. To use the latter 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

- 14,585

- 67,791
- 32
- 179
- 269
-
22This 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 -
-
-
I have an understanding
apt-get
will download and install latest deb from repos, to prevent that turn network off before install. Even cleaner install is by copying file (or several deb files together) to/var/cache/apt/archives
and runningsudo apt-get install --assume-yes --no-install-recommends /var/cache/apt/archives/*.deb
, that way as I've noticedapt
is not trying to download from internet. – Alex Martian Feb 12 '23 at 08:45
Are you looking for all dpkg commands? click this link to have a read.
15 dpkg commands to Manage Debian based Linux Servers
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

- 6,394
-
6"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 typingvlc
– Xen2050 Feb 07 '15 at 06:15
A handy tip when installing a program like Libreoffice which has multiple .deb files in a folder is to use.
sudo dpkg -i *.deb

- 291
- 3
- 4
-
4Never use this command. You have to manually remove all debs if want to remove that package.
sudo apt remove example
,sudo apt autoremove
andsudo dpkg -r *.deb
doesn't work. – Sep 29 '17 at 14:55
I have literally been waiting for this for years:
sudo apt install ./happy-at-long-last.deb
Yay! :) This works from APT 1.1 which should be available on most systems by now.
Using dpkg
has regularly caused problems for me, whereas apt
is very good at automatically resolving dependencies and avoiding problems. And it's still low-level enough to allow scripting and fine-tuning...

- 583
-
3This is now the "right" answer and should really be first in the list. I don't think SO/AskUbuntu lets moderators manually change the order of listed answers though. It was a long time coming! – pbhj Jan 13 '22 at 23:10
Installing .deb
files can be accomplished using:
sudo apt install ./<file>.deb
If you're on an older distribution, you will need to run this instead:
sudo dpkg -i ./<file>.deb
sudo apt-get install -f # Installing missing dependencies
Another approach is by using the gdebi tool to install deb files.

- 4,920
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.)
-
http://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
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.
There are many tools to install a deb package.
I personally use a built-in package installer dpkg:
- If you are logged as root:
Change the directory to location of deb package
dpkg -i package_name.deb
If you are not logged as a root:
sudo dpkg -i package_name.deb
To make sure that package was installed correctly and didn't have any broken dependencies:
sudo apt-get check
If there are any broken dependencies:
sudo apt-get -f install

- 103
If file is only one, then afaik dpkg -i /path/file.deb
is ok and simple (make sure apt user has access to the path, for user home folder it usually does not).
In case of several deb files (e.g. one package) sometimes dpkg
tries to process them in order where dependencies are not satisfied along the way. In such case clean and simplest way is by copying several deb files together to /var/cache/apt/archives
and running sudo apt-get install --assume-yes --no-install-recommends /var/cache/apt/archives/*.deb
, that way as I've noticed apt
is not trying to download from internet repos as it does if apt-get install /some_other_path/*.deb
.
Added to possibly make more future proof / general:
apt
cache location theoretically might be not in /var/cache/apt/archives/
, to get the location:
eval $(apt-config shell CACHE Dir::Cache)
eval $(apt-config shell ARCHIVES Dir::Cache::archives)
debs_cache_folder=/${CACHE}/${ARCHIVES}

- 612
dpkg -i
install dependencies for me? – Melebius Jul 09 '19 at 19:56sudo gdebi ./app.deb
– STEEL Mar 26 '24 at 16:07