Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Is there a better way to install only the required dependencies of a package, instead of installing it directly with apt-get (or any other frontend of dpkg) and then immediately removing it, leaving out its dependencies?

Thanks in advance,

share|improve this question

4 Answers 4

up vote 11 down vote accepted

apt-cache depends pkgname will show a package's dependencies.

If you want it all in one command, you could do worse than:

apt-get install `apt-cache depends pkgname | awk '/Depends:/{print$2}'`
share|improve this answer

apt-get provides a command for exactly that...

apt-get build-dep <package name>

From the man pages you get

build-dep causes apt-get to install/remove packages in an attempt to satisfy the build dependencies for a source package. By default the dependencies are satisfied to build the package natively. If desired a host-architecture can be specified with the --host-architecture option instead.

share|improve this answer
2  
Couldn't there be a difference between build dependencies and dependencies? As in, if you normally install a program you get dependencies that it needs to actually run, and with build-dependencies I think more about libraries, compilers, stuff like that. So as I'm not sure (this answer does have upvotes) but it seems to me it is not trivial that getting build-dependencies is the same as getting the (run) dependencies the packages has? –  Nanne Feb 25 at 8:08

In case of building pkgname from sources

apt-get build-dep pkgname
share|improve this answer

aptitude will let you specify a query instead of a package name when installing. If you wanted to install the dependencies of package named foo, you can install the packages which have a reverse dependency on foo:

aptitude install '?reverse-depends(foo)'

or

aptitude install '~Rfoo'

The problem with installing a package then removing it, is that all of the packages which get installed as dependencies will be marked as "automatically installed", and would be removed by any install/remove/upgrade action by aptitude or when you run apt-get autoclean unless you mark them as manually installed using aptitude mark or the apt-mark command.

However, this begs the question of why you would want to do this my best guess is that you are trying to install dependencies for some software which you are going to compile by hand. In that case, you would install the build dependencies first with apt-get build-dep packagename, but then you should be creating a dummy package which has the runtime dependencies (which generally differ from the build dependencies) by using the equiv package to build a dummy package with the correct dependencies for your manually compiled program. See information about equivs in The APT HOWTO

share|improve this answer

Your Answer

 
discard

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.