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.