APT-LISTBUGS(1)
π APT-LISTBUGS(1) β General Commands Manual π
okay bestie sit DOWN because this is the manual page for apt-listbugs, and it's literally about saving your system from a bad install π
β¨ NAME β¨
apt-listbugs β Lists critical bugs before each APT installation/upgrade
πΈ SYNOPSIS πΈ
apt-listbugs [-s severities] [-T tags] [-S states] [-B bug#] [-r
release] [-D] [-u url] [-H hostname] [-p port] [-P priority] [-E title]
[-q] [-C apt.conf] [-F] [-N] [-y] [-n] [-a] [-d] command [argument ...]
apt-listbugs -h
apt-listbugs -v
π DESCRIPTION π
so apt-listbugs is this little icon that goes and grabs bug reports from the Debian Bug Tracking System and lists them for you. and the whole point, the vibe, is that it's meant to be called before every install or upgrade by APT (or by other compatible package managers, iykyk) so it can check whether what you're about to do is actually safe. π«Ά
here's the typical scenario, bestie: you're installing or upgrading a bunch of packages with APT or some other compatible package manager. and before the install or upgrade actually happens, apt-listbugs gets invoked automatically. it goes and queries the Debian Bug Tracking System for bugs (of certain configured severities, more on that below) that the install or upgrade would drag into your system. and if it finds any, it warns you and asks how you want to proceed. π
among other things, you get to choose: continue, abort the whole install/upgrade, or pin some packages so the unsafe install/upgrade gets deferred. BUT β and this is the part nobody tells you β pinning is not effective immediately. it requires you to restart the APT session, which means aborting and then re-running the same APT command. periodt.
every package pin gets automatically removed by a daily cron job (or by an equivalent systemd timer) as soon as the corresponding bug is fixed in the package version available for install/upgrade, or no longer affects it. and once the pin is gone, that package can be installed or upgraded again. slay. β¨
for that automatic pin removal to actually work, the daily cron job or systemd timer has to actually run. if systemd is your init system, this should be handled automatically. otherwise, if your system is up and running almost 24/7, cron should suffice. in all other cases, installing anacron is recommended. also the Internet link has to be working while the daily job runs, and finally, your APT package lists should be kept up-to-date. like, all of this matters, don't skip it π
π OPTIONS π
-sseverities,--severityseverities β filters (and sorts) bugs by severity, showing only the bugs that match the values you specified. list the severities you wanna see, comma-separated, in the order you want them. possible values arecritical,grave,serious,important,normal,minor,wishlist, or the special valueallto disable filtering entirely. default:critical,grave,serious. and you can change that default by setting theAptListbugs::Severitiesconfiguration option. π-Ttags,--tagtags β filters bugs by tags, showing only bugs that match all the values you specified. list the tags you want, comma-separated. default: no filter. possible values includeconfirmed,l10nto show only bugs that have both of these tags. π-Sstates,--statsstates β filters (and sorts) bugs by pending-state, showing only the bugs matching the values you specified. list the pending-state categories you want, comma-separated, in the order you want them. default:pending,forwarded,pending-fixed,fixed,done. possible values are:pending(open bug),forwarded(marked as "forwarded"),pending-fixed(tagged as "pending"),fixed(tagged as "fixed"),absent(not found in this distribution/architecture),done(resolved in some version for this distribution/architecture). > note bestie: a bug can only match one such state β when multiple conditions on this list match, the later one takes priority β andpendingdoes not mean "tagged as pending". π-Bbug#,--bugsbug# β filters bugs by number, showing only the bugs you directly specified. list the bug numbers you want, comma-separated (e.g.123456,567890,135792). default: no filter. π₯-rrelease,--distro-releaserelease β filters bugs by distribution release, showing only bugs that affect the specified release. possible values are one of the release codenames listed in the output of the commanddistro-info --codename --all, orunstable,testing,stable,oldstable, or the special valueANYto disable filtering. default: no filter. and the default value can be changed by setting theAptListbugs::DistroReleaseconfiguration option. π-D,--show-downgradeβ shows bugs of downgraded packages. (apt mode only) π-uurl,--urlurl β specifies the SOAP URL for the Debian Bug Tracking System. default:https://bugs.debian.org:443/cgi-bin/soap.cgi. the default URL can be changed by setting theAptListbugs::URLconfiguration option. π¦-Hhostname,--hostnamehostname β specifies the hostname of the Debian Bug Tracking System and causes http to be used instead of https (DEPRECATED: use-uinstead). default:bugs.debian.org. π-pport,--portport β specifies the port number of the SOAP interface of the Debian Bug Tracking System and causes http to be used instead of https (DEPRECATED: use-uinstead). default:80. π-Ppriority,--pin-prioritypriority β specifies thePin-Priorityvalue. default:30000. π-Etitle,--titletitle β specifies the title of RSS output. β-q,--quietβ don't display the progress bar. this option is assumed if stdout is not a terminal. π€«-Capt.conf,--aptconfapt.conf β specifies an additional APT configuration file to use. this file gets read after the default APT configuration files. ποΈ-F,--force-pinβ when in apt mode, assumes you want to automatically pin all buggy packages with no prompt at all. this option is assumed if stdout is not a terminal, unless the-Ncommand-line option is used. πΈ-N,--force-no-pinβ when in apt mode, never automatically pin any package without a prompt. this is the default behavior, as long as stdout is a terminal. π-y,--force-yesβ assumes you select yes for all questions. when in apt mode, this implies you accept continuing with the installation/upgrade, even when bugs are found or errors occur. β-n,--force-noβ assumes you select no for all questions. when in apt mode, this implies you want to abort the installation/upgrade as soon as bugs are found or errors occur. this option is assumed if stdout is not a terminal, unless the-ycommand-line option is used. β-a,--force-defaultβ assumes you select the default (automatic) reply for all questions. when in apt mode, this implies you accept continuing with the installation/upgrade even when bugs are found, but not when errors occur. π―-d,--debugβ gives extra debug output, which is important for debugging problems. please include-dwhen reporting problems, bestie, fr fr. π-h,--helpβ prints usage help and exits. π«Ά-v,--versionβ prints the version number and exits. π
π§ COMMANDS π§
aptβ reads package actions from a file descriptor specified in the$APT_HOOK_INFO_FDenvironment variable (typically provided by APT or other compatible package managers;Pre-Install-Pkgshook info protocol version3is expected β seeapt.conf(5)for more details). πlist[ package [:arch ][/version ] ... ] β reads package names from the arguments and just simply lists bugs of these packages. package versions may be specified with a slash, likeapt/1.0for example. package architectures may be specified with a colon, likeapt:amd64orapt:amd64/1.0(but please note that the Debian Bug Tracking System does not distinguish the architectures, hence the same bugs will be listed regardless of the architecture you specified). πrss[ package [:arch ][/version ] ... ] β reads package names from the arguments and lists bugs of these packages in RSS format. again, package versions may be specified with a slash and architectures with a colon. π‘
πΊ ENVIRONMENT VARIABLES πΊ
APT_LISTBUGS_FRONTENDβ if this variable is set to"none",apt-listbugswill not execute at all. this might be useful if you'd like to script the use of a program that callsapt-listbugs. πhttp_proxyβ if$http_proxyis set, the value is used for the HTTP Proxy, unless proxy settings are found in APT configuration (see below). πAPT_HOOK_INFO_FDβ the file descriptor from which package actions will be read (APT or other compatible package managers are expected to write information to this file descriptor and to properly set this environment variable). π₯
π οΈ CONFIGURATION FILE π οΈ
so apt-listbugs literally reads the APT configuration (peep apt.conf(5) if u wanna go deeper, bestie). these are the config options it recognizes, no cap:
Acquire::http::Proxyβ the Default HTTP Proxy setting, and it overrides any$http_proxyenvironment variable value, so it's giving main character energy in the proxy department. An empty string, or the special keyword"DIRECT", will disable the proxy entirely. bye proxy πAcquire::http::Proxy-Auto-Detectβ Automatic HTTP Proxy discovery, and it overrides the default HTTP Proxy setting and any$http_proxyenvironment variable value (yes it's that girl). u can use it to specify an external command that's expected to output the proxy on stdout.Acquire::http::Proxy::bugs.debian.orgβ a Specific HTTP Proxy setting, and it overrides any other proxy setting. super useful for setting the HTTP proxy just for apt-listbugs. the special keyword"DIRECT"will disable the proxy.AptListbugs::URLβ the Default SOAP URL for the Debian Bug Tracking System. when this option is not set, the SOAP URL is"https://bugs.debian.org:443/cgi-bin/soap.cgi", unless it gets explicitly altered by using the-ucommand-line option (or the deprecated-Hand-pcommand-line options). but when this option is set, the SOAP URL is its value, unless it's explicitly altered by using the command-line options. periodt.AptListbugs::Severitiesβ the Default (comma-separated) list of bug severities to be shown. when this option isn't set, the list is"critical,grave,serious", unless it's explicitly altered by using the-scommand-line option. when it is set, the list of severities is its value, unless explicitly altered by using the-scommand-line option.AptListbugs::DistroReleaseβ the Default distribution release to consider for affected bugs to be shown. when this option isn't set, or is set to"ANY", no filtering by release is performed, unless explicitly enabled by using the-rcommand-line option. when it is set, the distribution release is its value, unless explicitly altered by using the-rcommand-line option.AptListbugs::IgnoreRegexpβ Bugs to ignore when in apt mode. this gets evaluated using Ruby regular expressions: if the bug title matches, the bug is ignored. Default: nothing. a possible suggested value is"FTBFS", since those bugs tend to not affect the user. slay, honestly.AptListbugs::QueryStepβ the Maximum number of packages to be queried (on the Debian Bug Tracking System) in a single batch. Default value is200. the query operation is performed in batches of at most QueryStep packages, for performance reasons; setting a lower value may slow down apt-listbugs, but may increase reliability on poor network links. πAptListbugs::ParseStepβ the Maximum number of bug reports to be queried (on the Debian Bug Tracking System) and parsed in a single batch. Default value is200. the query and parse operation is performed in batches of at most ParseStep bugs, for performance reasons; setting a lower value may slow down apt-listbugs, but may increase reliability on poor network links.AptListbugs::DebugFileβ the File for the debug output. Default value isstderr. when set, the specified file will be overwritten with the debug output, if the-doption has been passed. πAptListbugs::TimerOutputMailβ a Boolean option for the systemd timer output. when set to"false", the output of the systemd timer will not be sent to root via local mail, but to the logs. when this option isn't set (or is set to"true", which is the default value), the output of the systemd timer will be sent to root via local mail, as long as a sendmail compatible Mail Transport Agent (MTA) is found on the system. π¬
π OUTPUT EXAMPLE π
this is the vibe, bestie:
[bug severity] bugs of [package] ([current version] -> [package version to be installed]) <[state of bug report]>
[bN] - [#bug] - [bug title] [(Fixed: fixed version, if it's fixed in a future version)]
Summary:
[package]([number of] bugs)
e.g.:
important bugs of apt-listbugs (0.0.47 -> 0.0.49) <Outstanding>
b1 - #332442 - apt-listbugs: Apt-listbugs doesn't actually download any bug reports
b2 - #389903 - apt-listbugs: Does not offer to exit if timeout occurs fetching reports
Summary:
apt-listbugs(2 bugs)
iconic output tbh π
πͺ EXIT STATUS πͺ
0β If the program ran successfully and (when in apt mode) you decided to continue with the installation/upgrade. Or otherwise, if aSIGUSR1was received (for instance because you issued the commandkillall -USR1 apt-listbugs). β¨1β If an error occurred. π10β If the program ran successfully in apt mode, but you decided to abort the installation/upgrade. π130β If aSIGINTwas received (for instance because you pressed[Ctrl+C]).
N.B.: When the program is invoked by APT, any non-zero exit status will cause the installation/upgrade to be aborted. like, do not pass go, do not collect $200 π
π FILES π
/etc/apt/preferences.d/apt-listbugsβ Version preferences file fragment for APT managed by apt-listbugs: this is where the package pins are added by the apt-listbugs program and removed by its daily cron job or systemd timer. This file is managed automatically and there's normally no need to modify it by hand. π βοΈ/var/lib/apt-listbugs/ignore_bugsβ Automatic list of bug numbers to be ignored by apt-listbugs: this is where the program saves the bug numbers that the user decided to ignore. This file is managed automatically and there's normally no need to modify it by hand./etc/apt/listbugs/ignore_bugsβ User list of bug numbers and packages to be ignored by apt-listbugs: this is where the (root) user may manually add bug numbers or package names that apt-listbugs will ignore. This file is only read by apt-listbugs, but never modified: the (root) user has to edit it by hand. The format is: one bug number or package name per line; lines whose first non-blank character is'#'are treated as comments and skipped entirely. so keep those comments cute bestie π/etc/apt/apt.confand/etc/apt/apt.conf.d/*β Default APT configuration files (seeapt.conf(5)for more details)./etc/apt/apt.conf.d/10apt-listbugsβ Configuration file fragment for APT containing options related to apt-listbugs: this is the recommended place where the (root) user may tweak the behavior of apt-listbugs, but usually no customization is required. π
π AUTHORS π
the lore, ok:
2002-2004: apt-listbugs was originally written by Masato Taruishi<taru@debian.org>.2006-2008: Junichi Uekawa<dancer@debian.org>rewrote it to handle BTS Versioning features and the SOAP interface. The--bugsoption was added by Francesco Poli in 2008.2009-2010: apt-listbugs was maintained by Francesco Poli<invernomuto@paranoici.org>and Ryan Niebur<ryan@debian.org>2011-2012: maintenance was carried on by Francesco Poli and Thomas Mueller<thomas.mueller@tmit.eu>.2013- present day: apt-listbugs has been maintained by Francesco Poli.
The latest source code is available from https://salsa.debian.org/frx-guest/apt-listbugs β go give it a star, the way that repo carries this whole thing is unreal π«Ά
π¦ SEE ALSO π¦
apt.conf(5), sensible-browser(1), xdg-open(1), www-browser(1), querybts(1)
and that's the whole page, bestie!! π this was apt-listbugs 0.1.47, dated November 2024, living its best life as APT-LISTBUGS(1). go forth and never install a cursed package again, ily πβ¨πΈ
π¦ where this page comes from
- debian trixie: apt-listbugs 0.1.47 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms