DEBORPHAN(1)

๐Ÿ“ฆ version 1.7.35, in debian bookworm, ubuntu jammy, ubuntu noble

๐Ÿ’… deborphan โ€” the orphaned package finder, bestie

okay so picture this: you're on a Debian-ish system, you've installed and uninstalled like a hundred things, and now there's just... packages. sitting there. with nobody depending on them. orphans. ๐Ÿฅบ and that's exactly what deborphan is here to sniff out โ€” it's from the General Commands Manual and it is literally the "Orphaned package finder." no cap.


โœจ SYNOPSIS โœจ

deborphan [OPTION] ... [PACKAGE] ...

๐ŸŒธ DESCRIPTION ๐ŸŒธ

so here's the tea ๐Ÿต โ€” deborphan finds packages that have no packages depending on them. that's the whole vibe. nobody needs them, nobody's calling them, they're just... there.

by default it goes hunting inside the libs, oldlibs and introspection sections, specifically to track down unused libraries. unused library detective work. ๐Ÿ”

now, if you invoke it with an optional list of packages, only the dependencies on those packages get checked. and the results get printed to stdout as if you'd passed --show-deps. searching for specific packages will show the package regardless of its priority (no gatekeeping ๐Ÿ’…). oh and you can pass - to read a list of packages from standard input. cute, right?


๐Ÿ‘‘ OPTIONS ๐Ÿ‘‘

  • -f, --status-file=FILE โ€” use FILE as the status file.
  • -h, --help โ€” show a short help message and dip out.
  • -v, --version โ€” show version info and exit.

๐ŸŽ€ OUTPUT MODIFIERS ๐ŸŽ€

  • -d, --show-deps โ€” show a list of all installed packages and name the packages that depend on them.
  • -P, --show-priority โ€” show the priority of the packages found.
  • -s, --show-section โ€” show the sections the packages are in.
  • --no-show-section โ€” overrides showing sections when the default is to show them (peep --all-packages for that).
  • -z, --show-size โ€” show the installed size of the packages found.

๐Ÿ” SEARCH MODIFIERS ๐Ÿ”

  • -a, --all-packages โ€” check all the packages instead of only the ones in the libs section. best used (if at all used, ngl) together with --priority. this option implies --show-section.
  • -e, --exclude=LIST โ€” excludes the packages named in LIST (a comma separated list) from the evaluation, as if they didn't exist in the status file. ghosted. ๐Ÿ‘ป
  • -H, --force-hold โ€” ignore hold dpkg-flags on packages and thus display these packages. without this option, packages with the hold flag set will not be displayed. please refer to dpkg(1) for more info about package flags. also โ€” due a bug in aptitude (Debian bug #137771), hold flags created by aptitude are ignored by deborphan. ๐Ÿ™ˆ
  • --ignore-suggests
  • --ignore-recommends โ€” don't check if there's a package suggesting (--ignore-suggests) or recommending (--ignore-recommends) the package. when both options are used together, deborphan behaves as if the nice-mode mentioned below has been turned off.
  • -n, --nice-mode โ€” turn off nice-mode. nice-mode checks if there's a package suggesting or recommending the package. if one is found, the package gets marked as in use โ€” or, when --show-deps is used, it prints out the package suggesting the package as if it were depending on it.
  • -p, --priority=PRIORITY โ€” show only those packages with a priority equal to, or greater than PRIORITY. PRIORITY may be in the range of 1โ€“5, or one of required, important, standard, optional, extra. the default value for PRIORITY is 2 (important).
  • --find-config โ€” searches for uninstalled packages which still have configuration files on the system. it implies the -a option.
  • --libdevel โ€” also search in section libdevel.

๐Ÿซถ KEEP FILE MANAGEMENT ๐Ÿซถ

  • -A, --add-keep PKG1 ... PKGn โ€” add packages to the list of packages which are never to be reported, regardless of their state. you may specify - to use standard input. note that package names are case-sensitive. ๐Ÿ‘€
  • -k, --keep-file=FILE โ€” use FILE to store the list of kept-back packages.
  • -L, --list-keep โ€” show the list of packages that are being kept back.
  • -R, --del-keep PKG1 ... PKGn โ€” remove packages from the list of packages which are never to be reported. you may specify - to use standard input. if there are no dependencies for this package next time deborphan is invoked, it will be reported again. welcome back bestie ๐ŸŽ‰
  • -Z, --zero-keep โ€” purge the entire list of packages that are being kept back. the only option possible in combination with this option is -A.

๐Ÿงš GUESSING ๐Ÿงš

  • --guess-*
  • --no-guess-* โ€” deborphan can try to guess what packages may not be of much use to you by examining the package's name and/or description. it will pretend the package is in the main/libs section, and report it as if it were a library. this method is in no way perfect or even reliable, so beware when using this! โš ๏ธ

it's also possible to tell deborphan e.g. to guess all interpreters but not Perl by using --guess-interpreters --no-guess-perl, or to guess all but not Mono by using --guess-all --no-guess-mono.

please note that the --no-guess- option must occur after the --guess- option it modifies. this makes it possible to declare more complex things, like to guess all except interpreters but additionally try to guess perl.

the following options are to be prefixed by --guess- or (except only) by --no-guess-:

  • common โ€” this option tries to find common packages, i.e. packages with names ending in -common.
  • data โ€” this option tries to find data packages, i.e. packages with names ending in -data.
  • debug โ€” this option tries to find debugging libraries, i.e. packages with names ending in -dbg or -dbgsym.
  • dev โ€” this option tries to find development packages, i.e. packages with names ending in -dev. also see option --libdevel.
  • doc โ€” this option tries to find documentation packages, i.e. packages with names ending in -doc.
  • dummy โ€” this option tries to find dummy packages, i.e. packages with dummy or transitional in their short description.
  • kernel โ€” this option tries to find kernel-modules. it tries to match (-modules|^nvidia-kernel)-.*[0โ€“9]+\.[0โ€“9]+\.[0โ€“9]+.
  • interpreters โ€” try to find all interpreter modules (i.e. imply ruby, pike, python, perl and mono).
  • mono โ€” this option tries to find mono libraries. it tries to match ^libmono.
  • perl โ€” this option tries to find perl modules. it tries to match ^lib.*-perl$.
  • pike โ€” this option tries to find pike modules. it tries to match ^pike[[:digit:]]*-.
  • python โ€” this option tries to find python modules. it tries to match ^python[[:digit:]]*-.
  • ruby โ€” this option tries to find ruby modules. it tries to match ^lib.*-ruby[[:digit:].]*$.
  • section โ€” this option tries to find libraries that were accidentally placed in the wrong section. it tries to match ^lib, but not if it ends in one of: -dbg, -dbgsym, -doc, -perl, or -dev.
  • all โ€” try all of the above.
  • only โ€” ignore the package's section completely, and just go for the name and/or description. this option must be used in conjunction with one or more of the --guess options listed above, or deborphan will not display anything. ๐Ÿ˜ญ

๐Ÿ“ FILES ๐Ÿ“

  • /var/lib/dpkg/status โ€” statuses of available packages. see the section INFORMATION ABOUT PACKAGES in dpkg's man-page for more information.
  • /var/lib/deborphan/keep โ€” a newline-separated list of packages to keep. package names are in no particular order.

๐ŸŒˆ SEE ALSO ๐ŸŒˆ

dpkg(8), dselect(8), cruft(8), xargs(1)


๐Ÿ’€ BUGS ๐Ÿ’€

if you report a bug, please include your /var/lib/dpkg/status file. that would help in reproducing the bugs. fr fr, it really helps. ๐Ÿ™


๐Ÿ‘‘ AUTHORS ๐Ÿ‘‘

deborphan was written by Cris van Pelt <"Cris van Pelt"@tribe.eu.org>, then maintained by Peter Palfrader <weasel@debian.org> and Carsten Hey <c.hey@web.de>


and that's the whole page, bestie โœจ this version of deborphan is dated February 2009 โ€” shoutout to the deborphan gang for putting it together ๐Ÿซถ go free some orphans, you've got this ๐Ÿ’–

๐Ÿ“ฆ where this page comes from