NAME
Edos-debcheck - Check satisfiability of Debian package dependencies
SYNOPSIS
edos-debcheck [option] ... [package] ...
DESCRIPTION
edos-debcheck reads from standard input a set of Debian package
descriptions, each of which is in the format of deb-control(5). For
instance, the Packages files as found on a Debian mirror server, or in
the directory /var/lib/apt/lists/ of a Debian system, are suitable as
input to edos-debcheck.
Packages may appear with multiple versions in this set. We say that a
package is identified in this set by the pair consisting of the package
name and of the package version.
A package (called goal) is called installable with respect to a set of
packages if there exists a subset of the packages that
- contains at most one version for each package name
- contains the goal package (in any version, or a specific version)
- all packages of the subset have their dependencies and conflicts
satisfied in this subset. Pre-depends are treated like Depends, and
Breaks are treated like Conflicts.
Debcheck checks whether every package given as argument is installable
with respect to the input set of packages. Specific versions can be
specified by following the package name with the sign '=' and the
version of the package (for instance, 'xemacs21=21.4.17-1'). If no
package name is given as argument then all packages of the input set
are checked for satisfiability.
The constraint solving algorithm is complete, that is it finds a
solution whenever there exists one, even for multiple disjunctive
dependencies and deep package conflicts. This problem is
computationally infeasible in theory (that is, NP-complete), but can in
practice be solved very efficiently for Packages files occurring
actually in Debian.
OPTIONS
-i file
Specify an additional input file containing stanzas in deb-
control(5) format. These packages are checked for
installability the same way as packages read from standard
input.
-I file
Specify an additional input file containing stanzas in deb-
control(5) format. These packages that are not checked for
installability but only used for resolving dependencies.
-explain
Explain the results
-rules Print generated rules
-failures
Only show failures
-successes
Only show successes
-checkonly list
where list is a comma-separated list of package names. Check
only for installability of packages with name in list (of any
available version). This means that if a package does not exist
in the input pool then the test passes (since all available
versions are in that case installable). However, a warning is
issued in case a package mentionend in list is not available.
In the context of this option, a package of the form src:p
expands to the list of all packages that stem from the source
package p.
-quiet Supress warnings and progress/timing messages
-xml Output results in XML format
-help, --help
Display this list of options
EXIT CODE
The exit code is 0 when all packages that were asked to be checked
(either explicitly with the -checkonly option, or because they exist in
the package pool file) are available and found to be installable, it is
1 when a least one of these packages is available but not installable,
and it is 2 when at least one of the packages is not available but all
available packages are found to be installable. Hence, the exit code 2
can occur only when the -checkonly option is used.
EXAMPLE
Check which packages in a particular distribution are not installable
and why:
edos-debcheck -failures -explain < Packages
where Packages is the file pertaining to that distribution, as for
instance found in the directory /var/lib/apt/lists.
Check whether the xemacs21 and debhelper packages are installable in a
distribution described by the file Packages:
edos-debcheck -explain -checkonly xemacs21,debhelper < Packages
Check whether the package bibtex2html, and all binary packages stemming
from the ocaml source package, are installable
edos-debcheck -explain -checkonly bibtex2html,src:ocaml < Packages
AUTHOR
Edos-debcheck has been written by Jerome Vouillon for the EDOS project.
This man-page has been compiled by Ralf Treinen.
SEE ALSO
deb-control(5)
<http://www.edos-project.org> is the home page of the EDOS project.
edos-rpmcheck(1) is the analogous tool for rpm packages.