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:
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):
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.
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:
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:
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:
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...
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.
Packages are manually installed via the
dpkg
command (Debian Package Management System).dpkg
is the backend to commands likeapt-get
andaptitude
, 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 CenterBut 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
andaptitude
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 thedpkg
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
For example if the package file is called
askubuntu_2.0.deb
then you should dosudo dpkg -i askubuntu_2.0.deb
. Ifdpkg
reports an error due to dependency problems, you can runsudo 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
For example if the package is called
askubuntu
then you should dosudo dpkg -r askubuntu
.Reconfigure an existing package
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: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: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
To remove a Debian (Ubuntu) package (.deb):
To Reconfigure/Repair an installed Debian (Ubuntu) package (.deb):
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.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
anddpkg-deb
.Install a package
Remove a package
Remove a package and its configuration files
List all installed packages.
You can pipe the command to
less
(a pager) so you can more easily scroll the content:Check if the package is installed or not
Check if the package is installed or not, and if it is, launch it:
See whether a package is installed or not
And this will show the location where the package will be installed. Here
-S
(capitalS
) to search whether the package was installed or not.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).Show package details
Here
-p
(lowercasep
) will show the package info:View the content of a package
Use
-c
(lowercasec
) to show the content:Extract the
*.deb
package fileUse
-x
(lowercasex
) to extract:Extract and display the filenames contained in a package
Use
-X
(uppercaseX
) to display the content with extraction.Display information about a package
Here
-I
stands for information: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.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:While
dpkg -i
indeed installs the package, it doesn't do any automatic dependency resolution. Meanwhile there are two other alternatives, usinggdebi
or theapt-get
tool. To use the latter just use:Even if you are on the directory with the package, you need to give a path using
./
at the start:A handy tip when installing a program like Libreoffice which has multiple .deb files in a folder is to use.
The
gdebi
command-line solutionHere's the best way to install a .deb file on Ubuntu on the command-line:
If you don't have
gdebi
installed already, install it usingsudo 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 thansudo 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 likecompiz
andunity
!gdebi
gave a much clearer error message:(Here is the solution to that particular issue, by the way.)
I have literally been waiting for this for years:
Yay! :) This works from APT 1.1 which should be available on most systems by now.
Using
dpkg
has regularly caused problems for me, whereasapt
is very good at automatically resolving dependencies and avoiding problems. And it's still low-level enough to allow scripting and fine-tuning...Create your own script installer
debInstaller
as the following:Make the script executable with
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
Now you can install any
.deb
package using the command:The added value of this method is the solving the dependencies problem, since mostly you'll face some problems when you install a
.deb
withdpkg -i
due to dependencies error, so you have to useapt-get install -f
to solve it, this script will do the job for you, but here I usedapt-get --yes --fix-broken install
to automatically solve these errors without user intervention.Installing deb files
To install a
.deb
file, use:If you're on an older distribution, you will need to run this instead:
Another approach is by using the gdebi tool to install deb files.