NAME¶
debfoster —
weed unnecessary Debian
packages
SYNOPSIS¶
debfoster |
[-acdefhiknopqrstvV]
[--verbose]
[--version]
[--help]
[--quiet]
[--force]
[--mark-only]
[--upgrade]
[--config
file]
[--keeperfile
file]
[--no-keeperfile]
[--ignore-default-rules]
[--show-keepers]
[--show-orphans]
[--show-depends
package]
[--show-dependents
package]
[--show-providers
package]
[--show-related
package]
[--use-tasks]
[--option
opt=val]
[package1
...]
[package2-
...] |
DESCRIPTION¶
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 ensue.
Whenever
debfoster asks you about a package, any of the
following responses can be given:
- ‘
y
’
- Yes, keep the package. This is the default response.
- ‘
n
’
- No, delete the package.
- ‘
p
’
- 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.
- ‘
s
’
- Skip this question. The next time you run
debfoster it will ask you again about this package.
- ‘
h
’
- Print a help message.
- ‘i’ or
‘?’
- Show information about the package.
- ‘
u
’
- Undo last response.
- ‘
q
’
- Exit without removing packages. All changes will be
lost.
- ‘
x
’
- Save changes to debfoster database,
remove unwanted packages, and exit without asking further questions.
Command line options¶
- -v,
--verbose
- debfoster will show which packages have
disappeared, have become dependencies or (if Quiet is
enabled) have become orphans.
- -V,
--version
- Display version and copyright information.
- -h,
--help
- Display a concise summary of the available options and
argument syntax.
- -f,
--force
- 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.
- -q,
--quiet
- Don't ask anything and assume
‘
yes
’ as the answer to all questions.
Useful to create an initial /var/lib/debfoster/keepers
file or to recreate it after changing the configuration file.
- -m,
--mark-only
- 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 well.
- -u,
--upgrade
- If used as
‘
debfoster -u
package
’ it will install or upgrade the
packages specified on the command line and try to upgrade all packages
that it relies on.
- -c,
--config file
- Specify a different configuration file to use.
- -k,
--keeperfile file
- Specify a different debfoster database to
use.
- -n,
--no-keeperfile
- Don't read the debfoster database and
start with an empty list.
- -i,
--ignore-default-rules
- This will instruct debfoster to ignore
the UseHold, UseEssential, MaxPriority,
KeepSections, and
NokeepSections 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 uncertainty.
- -a,
--show-keepers
- Lists the contents of the debfoster
database.
- -s,
--show-orphans
- List all orphaned packages that are not mentioned in the
debfoster database.
- -d,
--show-depends package
- List all packages that this package depends on.
- -e,
--show-dependents package
- List all packages in the debfoster
database that depend on this package.
- -p,
--show-providers package
- List all packages that provide the dependency target
specified by package (e.g.
“debfoster -p x-terminal-emulator” ).
- -r,
--show-related package
- List all packages that are only installed because this
package depends on them.
- -t,
--use-tasks
- Make tasks visible as packages. This will make tasks that
are selectable using tasksel(1) appear as packages named
task-<label>.
- -o,
--option opt=val
- Override any configuration option specified in the
configuration file.
CONFIGURATION¶
Some aspects of the behaviour of
debfoster can be configured
in the configuration file,
/etc/debfoster.conf. Options are
specified as
Option
= Value
Option names are case insensitive.
- InstallCmd
- Default: apt-get installp 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 options.
- RemoveCmd
- Default: apt-get --purge removep Like
InstallCmd but for removing packages.
- InfoCmd
- Default: dpkg -sp Like
InstallCmd but called with a single package as an
argument to display information on.
- KeeperFile
- Default: /var/lib/debfoster/keepersp 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.
- DpkgStatus
- Default: /var/lib/dpkg/statusp The file
where dpkg(8) stores its information about which
packages are more or less installed. This value can usually be left
untouched.
- DpkgAvailable
- Default: /var/lib/dpkg/availablep The
file where dpkg(8) stores its information about which
packages are available. This value can usually be left untouched.
- MaxPriority
- Default: standardp 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
debian-policy package):
required
important
standard
optional
extra
- UseHold
- Default: yesp 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 keep it.
- UseEssential
- Default: yesp 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.
- UsePreDepends
- Default: yesp 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.
- UseRecommends
- Default: yesp 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 them.
- UseSuggests
- Default: nop 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 asked.
- UseTasks
- Default: nop 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 it.
- KeepSections
- Default: p 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
‘
precious
’ sections.
- NokeepSections
- Default: p 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.
- GuessDepends
- Default: p 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 GuessDepends list.
- NegativeKeepers
- Default: yesp 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.
- Verbose
- Default: nop 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.
- Force
- Default: nop This option has the same
meaning as the -f command line option. All orphaned
packages are scheduled for removal without asking any question.
- Quiet
- Default: nop 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.
BUGS¶
Send reports to the Debian bug tracking system:p
http://bugs.debian.org/debfosterp
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
in handy.
SEE ALSO¶
apt-get(8),
apt-cache(8),
dpkg(8),
deborphan(1)
tasksel(1)