DEBORPHAN(1)
๐ 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โ useFILEas 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-packagesfor 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 thelibssection. best used (if at all used, ngl) together with--priority. this option implies--show-section.-e,--exclude=LISTโ excludes the packages named inLIST(a comma separated list) from the evaluation, as if they didn't exist in the status file. ghosted. ๐ป-H,--force-holdโ ignoreholddpkg-flags on packages and thus display these packages. without this option, packages with theholdflag set will not be displayed. please refer todpkg(1)for more info about package flags. also โ due a bug in aptitude (Debian bug#137771), hold flags created by aptitude are ignored bydeborphan. ๐--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,deborphanbehaves as if thenice-modementioned 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-depsis 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 thanPRIORITY.PRIORITYmay be in the range of1โ5, or one ofrequired,important,standard,optional,extra. the default value forPRIORITYis2(important).--find-configโ searches for uninstalled packages which still have configuration files on the system. it implies the-aoption.--libdevelโ also search in sectionlibdevel.
๐ซถ 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โ useFILEto 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 timedeborphanis 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-*โdeborphancan 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 themain/libssection, 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-dbgor-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 withdummyortransitionalin 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. implyruby,pike,python,perlandmono).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--guessoptions listed above, ordeborphanwill not display anything. ๐ญ
๐ FILES ๐
/var/lib/dpkg/statusโ statuses of available packages. see the sectionINFORMATION ABOUT PACKAGESin 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
- debian bookworm: deborphan 1.7.35
- ubuntu jammy: deborphan 1.7.35
- ubuntu noble: deborphan 1.7.35
- Copyright (C) 2000, 2001, 2002, 2003 Cris van Pelt
- Copyright (C) 2003, 2004, 2005, 2006 Peter Palfrader
- Copyright (C) 2005 Daniel Dรฉchelotte
- Copyright (C) 2008 Andrej Tatarenkow
- Copyright (C) 2008, 2009 Carsten Hey
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms