Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Say, I have foo-1.2.3.deb which depends on perl and python, however, running command:

dpkg -i ./foo-1.2.3.deb

won't install these dependencies. So I must apt-get install perl python by hand.

How to make dpkg -i install these dependencies for me automatically?

share|improve this question
@pd12: Hooray for circular references! :-D – David Foerster Oct 31 '15 at 9:34
heh, I decided to link both and see which one the mods would select. – pd12 Nov 2 '15 at 0:11
up vote 191 down vote accepted

After using dpkg, running the following command helped me to install the dependencies :

sudo apt-get -f install

In all, your terminal should look like this:

$ sudo dpkg -i package_with_unsatisfied_dependencies.deb
dpkg: dependency problems prevent ... 
[additional messages]
$ sudo apt-get -f install
[apt messages]
Setting up [dependency]...
Setting up package_with_unsatisfied_dependencies...
share|improve this answer
Should I run sudo dpkg -i mypackage.deb again ? – Muhammad Gelbana Nov 22 '13 at 13:41
After running sudo apt-get -f install my package and it's dependencies were all installed. Running sudo dpkg -i my_package.deb is unnecessary and will just install the package again. – Gus E Dec 13 '13 at 16:20
Following works on Ubuntu 14.04: sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb. The first dpkg -i run marks dependencies, apt-get -f install installs required dependencies and the second dpkg -isuccessfully installs the package. Note that apt-get install -f is totally different command. – Mikko Rantalainen Apr 21 at 11:19
@ysth no, do not do dpkg -i --force; that will force-install a broken package! Running dpkg /without/ --force will make the necessary entry in the package database so that apt-get -f install will do the right thing. – Lotharyx May 10 at 15:21
@Lotharyx: I can't try it right now, but I didn't think the dpkg without force (that fails due to missing dependencies) would make an entry in the package database – ysth May 10 at 17:00

You can install gdebi-core, which is the command line version of the GDebi package installer from 10.04 and earlier. In the newer versions of Ubuntu, the Software Center is used to install debs, which doesn't have a command line equivalent.

To install a deb package using gdebi, just run:

sudo gdebi my_package_1.0.deb
share|improve this answer
made my day..thanks :) – suraj mandalcell May 28 at 7:48


gdebi installs a deb package and its dependencies. To use it run:

sudo gdebi package.deb

In newer versions of Ubuntu, this is not installed by default, so you will need to install it from the repositories.

See man gdebi for a full list of options.

gdebi is the command line equivalent to the graphical tool of the same name that used to be included by default in Ubuntu. The command for the graphical tool is gdebi-gtk and has similar functionality:


share|improve this answer


sudo apt-get install -f

after installing package with dpkg may solve broken depencies (at least man apt-get say so...). Ill update when i will check it.

share|improve this answer
Should I run sudo dpkg -i mypackage.deb again ? – Muhammad Gelbana Nov 22 '13 at 13:42
apt-get -f install works, but apt-get install -f is not the same. – 200_success May 13 '15 at 0:20

dpkg doesn't have dependency support. There is a way around it but that would require you to make a local database (and thus you would already know the dependencies) and it is considered obsolete (...).

Does it have to be command line? (server install?) If so also have a look at apt-get -f but be careful: solving dependencies after install could have you end up with a broken system.

gdebi (gui frontend) used to be able to do this but got replaced with USC.

How did you download the .deb. Some of the new 11.04 features is the handling of .deb downloaded from a website: it gets opend in USC so dependencies will be solved by the installer.

EDIT based on comment by andrew: sudo gdebi foo-1.2.3.deb would do the trick!!

share|improve this answer
gdebi can still be used for this. Software Center is now just the default app. Also, as Chen Xiao-Long notes, gdebi can also be used on the command line. – andrewsomething May 4 '11 at 16:26
cool! then the question has an answer because gdebi can be used on commandline too it seems. – Rinzwind May 4 '11 at 16:50

You could create a file dpkg-dep-inst with the following content.


dpkg -i $DEBIAN_FILE1
apt-get install -f

I assume you created the file in your home folder. Make it executable with chmod +x dpkg-dep-inst and move it to /usr/local/bin with sudo cp dpkg-dep-inst /usr/local/bin.

Now you can install the debian package with dependencies automatically with:

sudo dpkg-dep-inst foo-1.2.3.deb
share|improve this answer
Use apt-get --yes --fix-broken install and make the fixing automatic. – Lucas Mar 4 '14 at 18:12
@ysth No, not in general. – BuZZ-dEE Dec 17 '15 at 9:17

As an alternative to gdebi-gtk you can use Ubuntu Software Center.

Double click on the package and an install button should be available.

share|improve this answer

I just ran into this problem. Calling apt-get install -f will not install recommended dependencies, though! The only workaround for this would be then to create a local repository and add to /etc/apt/sources.list, i.e.:

apt-ftparchive packages . > Packages && gzip < Packages > Packages.gz
sudo echo "deb file://$PWD /" >> /etc/apt/sources.list
sudo apt-get update
share|improve this answer

starting with apt 1.1 (available in xenial(16.04), stretch) apt install also allows local files:

apt install foo-1.2.3.deb

So much simpler and cleaner.

See here for the release announcment

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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