My understanding of software dependencies is that a program package may require other packages to be installed, termed dependencies. A tree-like result ensues. Sometimes packages share common dependencies, but the package only needs to be installed once.
|Package D | Package B --------->| | |Package E Package A ------->| | |Package F | Package C --------->| |Package B
I recently posted a question on AskUbuntu.com about finding the dependencies of a package, and all the ways of doing this gave me different results. The reason for this was that some of the methods were apparently listing more than just dependencies, some were performing recursive checks, and some were performing reverse checks.
What is the difference between a reverse dependency check, and a recursive dependency check?
EDIT:
Citations for terms. I first heard them in the comments of a thread I posted about APT, but they are used in several programs that can be used to do dependency checks as well as on their manpages.
apt-cache rdepends is looking for Reverse dependencies, my script and apt-rdepends are recursively looking for dependencies.
rdepends pkg(s) rdepends shows a listing of each reverse dependency a package has.
apt-rdepends - performs recursive dependency listings similar to apt-cache
Best Answer
Reverse depends
Reverse depends means you want a list of packages that depend on a given package.
Example
Recursive depends
Using a tool such as
apt-rdepends
shows what packages a given package is dependent on, plus what packages these packages are also dependent on. This is performed recursively until the entire dependency tree is exhausted.Example
Above you can see that
jetty
is dependent onadduser
which itself is dependent ondebconf
.Reverse recursive depends
This one shows what packages depend on a package that depends on a given package. This is again done recursively.
Example
Again here as the tree is explored the first package that lists
jetty
as a dependency issolr-jetty
, which in turn is listed as a dependency forchef-solr
, etc.Types of depends
It can get a little confusing but there are a variety of depends. Looking at the man page for
apt-rdepends
: