.Dd 2001-06-10 .Dt DEBFOSTER 8 .Os "Debian GNU/Linux" .Sh NAME .Nm debfoster .Nd weed unnecessary Debian packages .Sh SYNOPSIS .Nm .Op Fl acdefhiknopqrstvV .Op Fl -verbose .Op Fl -version .Op Fl -help .Op Fl -quiet .Op Fl -force .Op Fl -mark-only .Op Fl -upgrade .Op Fl -config Ar file .Op Fl -keeperfile Ar file .Op Fl -no-keeperfile .Op Fl -ignore-default-rules .Op Fl -show-keepers .Op Fl -show-orphans .Op Fl -show-depends Ar package .Op Fl -show-dependents Ar package .Op Fl -show-providers Ar package .Op Fl -show-related Ar package .Op Fl -use-tasks .Op Fl -option Ar opt=val .Op Ar package1 No ... .Op Ar package2- No ... .Sh DESCRIPTION .Nm maintains a list of installed packages that were explicitly requested rather than installed as a dependency. Arguments are entirely optional, .Nm can be invoked per se after each run of dpkg and/or apt-get. .Pp Alternatively you can use .Nm to install and remove packages by specifying the packages on the command line. Packages suffixed with a .Ar - are removed while packages without a suffix are installed. .Pp If a new package is encountered or if .Nm 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, .Nm will just take note and continue. If you decide that this package is not interesting enough it will be removed as soon as .Nm is done asking questions. If your choices cause other packages to become orphaned more questions will ensue. .Pp Whenever .Nm asks you about a package, any of the following responses can be given: .Pp .Bl -tag -offset "12" -width "3456123456" -compact .It Ql y Yes, keep the package. This is the default response. .It Ql n No, delete the package. .It Ql p Prune the package. This tells .Nm 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. .It Ql s Skip this question. The next time you run .Nm it will ask you again about this package. .It Ql h Print a help message. .It So i Sc or So \&? Sc Show information about the package. .It Ql u Undo last response. .It Ql q Exit without removing packages. All changes will be lost. .It Ql x Save changes to .Nm database, remove unwanted packages, and exit without asking further questions. .El .Ss Command line options .Bl -tag -width indent .It Fl v, -verbose .Nm will show which packages have disappeared, have become dependencies or (if .Pa Quiet is enabled) have become orphans. .It Fl V, -version Display version and copyright information. .It Fl h, -help Display a concise summary of the available options and argument syntax. .It Fl f, -force Don't ask anything and assume .Ql 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 .Nm database. Can have .Ql interesting results if you're not careful. .It Fl q, -quiet Don't ask anything and assume .Ql yes as the answer to all questions. Useful to create an initial .Pa /var/lib/debfoster/keepers file or to recreate it after changing the configuration file. .It Fl 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 .Ql 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 .Fl -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. .It Fl u, -upgrade If used as .Ql Nm Fl u Cm package it will install or upgrade the packages specified on the command line and try to upgrade all packages that it relies on. .It Fl c, -config Ar file Specify a different configuration file to use. .It Fl k, -keeperfile Ar file Specify a different .Nm database to use. .It Fl n, -no-keeperfile Don't read the .Nm database and start with an empty list. .It Fl i, -ignore-default-rules This will instruct .Nm to ignore the .Va UseHold, UseEssential, MaxPriority, KeepSections, No and .Va 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, .Fl i eliminates that uncertainty. .It Fl a, -show-keepers Lists the contents of the .Nm database. .It Fl s, -show-orphans List all orphaned packages that are not mentioned in the .Nm database. .It Fl d, -show-depends Ar package List all packages that this package depends on. .It Fl e, -show-dependents Ar package List all packages in the .Nm database that depend on this package. .It Fl p, -show-providers Ar package List all packages that provide the dependency target specified by .Ar package (e.g. .Qo Nm -p x-terminal-emulator .Qc ). .It Fl r, -show-related Ar package List all packages that are only installed because this package depends on them. .It Fl t, -use-tasks Make tasks visible as packages. This will make tasks that are selectable using tasksel(1) appear as packages named task-