debfoster maintains a list of installed packages
that were explicitly requested rather than installed as a dependency.
Arguments are entirely optional, debfoster can be
invoked per se after each run of dpkg and/or apt-get.
Alternatively you can use debfoster to install and
remove packages by specifying the packages on the command line. Packages
suffixed with a - are removed while packages
without a suffix are installed.
If a new package is encountered or if debfoster
notices that a package that used to be a dependency is now an orphan, it will
ask you what to do with it. If you decide to keep it,
debfoster will just take note and continue. If
you decide that this package is not interesting enough it will be removed as
soon as debfoster is done asking questions. If
your choices cause other packages to become orphaned more questions will
Whenever debfoster asks you about a package, any of
the following responses can be given:
Yes, keep the package. This is the default response.
No, delete the package.
Prune the package. This tells
debfoster to also delete all packages that
are only installed because this package depends on them. A list of such
packages, if any, is shown above the prompt.
Skip this question. The next time you run
debfoster it will ask you again about this
Print a help message.
Show information about the package.
Undo last response.
Exit without removing packages. All changes will be
Save changes to debfoster
database, remove unwanted packages, and exit without asking further
Don't ask anything and assume
‘no’ as the answer to all questions.
It also installs any packages that seem to be missing, thus forcing your
system to comply with the debfoster database.
Can have ‘interesting’ results if
you're not careful.
Instructs debfoster to make changes to the keeper file but
not to actually install or delete any packages. This can be used to
‘edit’ a keeper file by invoking
debfoster one or more times in a row. The changes can then be committed by
invoking debfoster with the --force option,
which will delete/install any necessary packages. This is mainly useful
for scripts and frontends, but may be useful from the command line as
This will instruct debfoster
to ignore the UseHold, UseEssential,
MaxPriority, KeepSections,andNokeepSections settings in the config
file (i.e., assume that any package can be an orphan). This is a good
option for those who really want to make sure their system is squeaky
clean. It's also useful when sharing or transferring a keeper file between
multiple machines where different config files can cause some confusion.
Properly used, -i eliminates that
Some aspects of the behaviour of debfoster can be
configured in the configuration file,
/etc/debfoster.conf. Options are specified as
Option names are case insensitive.
Default: apt-get install
Command invoked with a number of packages on the command line. The command
is not passed to /bin/sh but invoked like
xargs(1) with a number of packages as extra
Default: apt-get --purge
remove Like InstallCmd but for
Default: dpkg -s Like
InstallCmd but called with a single
package as an argument to display information on.
/var/lib/debfoster/keepers The file where the
list of orphans is stored. You can use this file for reference when
installing a machine or even to make identical Debian installs.
The file where dpkg(8) stores its information
about which packages are more or less installed. This value can usually be
/var/lib/dpkg/available The file where
dpkg(8) stores its information about which
packages are available. This value can usually be left untouched.
Default: standard Any packages
with a priority greater than this value will be considered too basic to
ask questions about. The default value means that questions will be asked
about packages with priority "standard", "optional"
and "extra". With the special value
‘ANY’ you can indicate that all
known priorities should be considered too
important to ask questions about. These priority values are known to
debfoster (taken from the
Default: yes Use the
hold attribute from the
Status: line. Packages with this attribute
won't ever be upgraded by apt, so it's safe to assume that you want to
Default: yes Use the
Essential: line from
dpkg(8) 's status file. Most packages which
are marked essential shouldn't be removed anyway, so if you don't want to
be bothered with it, enable this option.
Default: yes A package that
pre-depends on another package requires the latter during installation.
This option will make debfoster count these
pre-dependencies as ordinary dependencies. If you frequently update your
packages you may want to keep an eye out for pre-depended packages that
have become obsolete.
Default: yes Recommended
packages would be installed together with the package that recommends them
in all usual setups. This option will make
debfoster count these recommendations as real
dependencies. Enabling this option will enable you to better manage
packages which were installed because another package recommended
Default: no Packages suggested
by another package usually enhance the function of the latter or have a
related function which may be useful in combination with the package that
suggested them. This option will make
debfoster count these suggestions as real
dependencies. Using this option will result in even fewer questions being
Default: no Make tasks visible
as packages. This will make tasks that are selectable using tasksel(1)
appear as packages named task-<label>.
debfoster will treat them as if they were
normal packages. Tasks cannot be removed but marking a task for removal
will stop debfoster asking questions about
Default: You may find that
you are always interested in keeping (for example) documentation. With
this option you can indicate that packages from a certain section should
always be kept. You can specify a comma separated lists of
Default: List the sections
you are never interested in. For example,
‘libs’ is a good candidate, as most
libraries debfoster asks about are leftovers from old packages.
Default: List name extensions
for packages that you want to group with their base packages. Applications
are often separated into multiple packages with names like
“app”, “app-doc”, “app-dev”. If
you don't want to answer questions about “app-doc”, you can
add the “doc” extension to the
Default: yes Remember explicit
removals of packages. If a package is installed that has been explicitly
removed before, remove it again without asking. Set this to
no if you want to be asked anyway.
Default: no Using this option
has the same result as having -v on the
command line. It will make debfoster show
which packages have disappeared or have become a dependency.
Default: no This option has
the same meaning as the -f command line
option. All orphaned packages are scheduled for removal without asking any
Default: no Having this option
(which has the same meaning as the -q command
line argument) in your configuration file more or less defeats the purpose
of debfoster although the
KeeperFile is still kept up-to-date.
Send reports to the Debian bug tracking system:
http://bugs.debian.org/debfoster with as much
information as you can gather (error messages, configuration files, versions
of dpkg/apt, whatever might be relevant). A tool such as reportbug might come