I'm trying to download APT and all it's dependencies so I can use dpkg to install APT offline. Since you can't simply use apt-get download apt
the approach I've taken is trying to generate a list of dependencies which I can then manually use apt-get download package-name
to retrieve.
I've tried these:
apt-cache showpkg package-name
apt-cache depends packagename
dpkg -I pkg-name1_version.deb
They don't work properly. I need a way to list not only the dependencies of APT, but also the dependency dependencies; the entire tree. According to "sudo apt-get install apt --reinstall
" APT has 302 depenencies+sub-depenencies. The lists generated using the answers I've found appear only to list the first level of dependencies, because they are too short.
Best Answer
Either I am gravely mistaken, or there's something fundamentally wrong with
apt
having 302 dependencies + sub-dependencies. How can any distribution claim to lightweight if it depends onapt
, then? At least, in my laptop, reinstallingapt
doesn't mention any dependencies at all, so I am not sure where you got that figure from. I cooked up a script to check. On Ubuntu 14.04, I get 24 dependencies:I then learned about
apt-rdepends
: http://xmodulo.com/2013/07/how-to-check-package-dependencies-on-ubuntu-or-debian.htmlI installed and ran it, filtered the dependencies, sorted and compared to find the same list I got with the script. So I can safely conclude that these are all the packages you need to install
apt
. I think one of thosegcc-4.[89]
can be ignored depending on which one you want to install. Note that this list has trimmed down from Ubuntu 12.04, on which running this script (on a server) gave me 28 dependencies:Presumably the packages have been trimmed down. The lack of dependency on
coreutils
anddebconf
is startling, I must say.On a side note, I agree with this bug given in
apt-rdepends
man page:The
apt-cache
tool provides four relevant commands that Braiam, unorthodox-grammar and I have discussed:depends
: List the (forward) dependencies. This also includes all the packages that are recommended, and also includes packages in the Breaks, Conflicts and Replaces sections. We just need to look at the Depends and Pre-Depends packages.rdepends
: There's an unfortunate naming clash withapt-rdepends
. Bothapt-rdepends
and my aforementioned script check for dependencies recursively, whereas theapt-cache
command is looking for reverse dependencies - packages which depend on the package in consideration. Use this command to check for potentially breakages caused by a package depending on a specific version of the one you are going got change.showsrc
: This command gives information about the source package that was use to build a package. A single source package can be used to build multiple binary packages - each of which may or may not depend on the others.apt
, for example, depends onlibapt-pkg
, but not onlibapt-inst
, both of which are provided by theapt
source package. Use this command to gain some insight into other packages you should install, which may not be dependencies, but which may be needed for greater utility,showpkg
: This command, among other things, lists both reverse and forward dependencies. The reverse dependencies are listed in a straightforward list, but the forward ones are a bit of a jumble - I still am not sure what the numbers mean. In any case, the individual commandsdepends
andrdepends
are clearer.Thus, if we need to look at all the packages that a package might depend on directly or indirectly,
apt-rdepends
is what we need.