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?
After using
dpkg
, running the following command helped me to install the required dependencies:In all, your terminal should look like this:
Notice the line about
Setting up package_with_unsatisfied_dependencies
. This fixes (and completes) the installation ofpackage_with_unsatisfied_dependencies.deb
.starting with apt 1.1 (available in Xenial (16.04), stretch)
apt install
also allows local files:So much simpler and cleaner.
See the release announcment
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:
Gdebi
gdebi
installs a deb package and its dependencies. To use it run: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 isgdebi-gtk
and has similar functionality:running
after installing package with dpkg may solve broken depencies (at least man apt-get say so...). Ill update when i will check it.
If you need to run a command that automatically resolves all of a .deb file's dependencies and installs the .deb file and its missing dependencies with the same command, you will need to update your installed software with
sudo apt update
. Then open the terminal, change directories usingcd
to the directory containing package-name.deb, and type:where
package-name.deb
should be replaced by the name of a .deb file located in the current directory that you are trying to install.The above command will not install anything, but it will print a message listing any dependencies of package-name.deb that do not exist in the default Ubuntu repositories. You will need to manually download and install the .deb files of these missing dependency packages in order to install package-name.deb. Run
apt install --simulate ./manually-downloaded-package.deb
before installing any of these manually downloaded dependency packages in order to check if these packages have any unmet dependencies themselves.If the simulated command completes successfully, run the following command to install package-name.deb.
There can be multiple .deb files in the same command if the .deb files are all located in the current directory.
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!!As an alternative to
gdebi-gtk
you can use Ubuntu Software Center.Double click on the package and an install button should be available.
You could create a file
dpkg-dep-inst
with the following content.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
withsudo cp dpkg-dep-inst /usr/local/bin
.Now you can install the debian package with dependencies automatically with:
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.: