The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

debarnacle - Check the filesystem for barnacles (missing and unexplained files)

SYNOPSIS

debarnacle [ -v VERBOSITY | -C CONFIGDIR | -c CACHESIZE | -d | -p | -q | -h ] [ ROOT ]

DESCRIPTION

This manual page documents briefly the debarnacle command.

debarnacle is a program that goes over the Debian packaging system's database, and compares the contents of that with the files actually on your system, and produces a summary of the differences.

OPTIONS

A summary of options is included below.

-h

Show summary of options.

-d

Don't consider file names from packages explained, only those returned by plugins (see below). Probably only makes sense together with -C, otherwise almost all files in the system would turn out unexplained.

-p

Don't consider file names from plugins explained, only those returned by dpkg. debarnacle -d -p is rather a roundabout way of doing find / -print.

-q

Be quiet. -q is equivalent to -v 0 and overrides any -v option given.

-v VERBOSITY

If VERBOSITY is greater than 0, debarnacle will print some progress messages to standard error. The default is -v 1.

-C CONFIGDIR

Look for configuration files in CONFIGDIR. The default is /etc/debarnacle, but it can be changed in two ways: first, by setting the envar sysconfdir while processing Makefile.PL, second, by passing sysconfdir=/usr/local/etc (for example) on the make command line.

-c CACHESIZE

debarnacle uses DB_File(3) for its database of filenames. If given CACHESIZE is the value $DB_TREE->{cachesize} gets set to. The default (scientifically optimized) is 2000 times the number of installed packages (i.e. about 2M if you have 1000 packages installed).

FILES

CONFIGDIR/prunes

List of paths to prune from the existing file list, one per line. Empty lines and lines starting with the comment character '#' are ignored.

CONFIGDIR/globs

This file is processed twice: first, after performing the general tree scan, the main program reads glob patterns from it, one per line, and adds all matching files to the database. This pass avoids "missing" reports about files which are omitted from the tree scan due to their localtion under one of the directories listed in prunes, but which are shipped in a package.

Second, a catch-all plugin Globs.pm reads this file and "explains" all the matching filenames. This means a file matching a line from globs can never be reported as either missing or unexplained.

CONFIGDIR/plugin.d/

This directory contains the "explanation plugins": Perl modules which produce lists of files. Each file listed by at least one of these modules is considered "explained" and its existence is not mentioned in debarnacle's output (as long as it does exist, if not it is mentioned as missing).

Each plugin should contain a single non-exported function get_list with no parameters, in the namespace (Perl package) Debian::Debarnacle::module_name. The function should return a reference to an array of absolute file names.

The explanation plugins in the plugin directory will in practice most often be symlinks to the real modules, which are installed to the normal Perl places.

AUTHOR

This manual page was originally written by Anthony Towns <ajt@debian.org>, the author of the cruft package from which debarnacle is derived. It has been modified by Ian Zimmerman <itz@speakeasy.org> to accurately document the newer program.