On Debian and Ubuntu systems, there is a file called /var/lib/dpkg/status that holds information about software packages that the system knows about. This small .NET app service exposes some key information about packages in the file via an HTML interface.
- The index page lists installed packages alphabetically with package names as links.
- When following each link, you arrive at a piece of information about a single package. The following information is included: a. Name b. Description c. The names of the packages the current package depends on (skip version numbers) d. Reverse dependencies, i.e. the names of the packages that depend on the current package
- The dependencies and reverse dependencies are clickable and the user can navigate the package structure by clicking from package to package.
- Only looking at the Depends field. Ignoring other fields that work kind of similarly, such as Suggests and Recommends.
- Sometimes there are alternates in a dependency list, separated by the pipe character |. When rendering such dependencies, rendering any alternative that maps to a package name that has an entry in the file as a link and printing the name of the package name for other packages.
- The section “Syntax of control files” of the Debian Policy Manual applies to the input data.
- The solution runs on non-Debian systems as well.