CUPT.CONF(5)
okay so bestie, this is the man page for cupt.conf β aka CUPT.CONF(5) if you're being formal about it β and it's literally the entire vibe guide to how Cupt's config file works. grab a snack, we're going through all of it. π
π NAME π
cupt.conf β the configuration file for Cupt. that's it, that's the name, periodt. π
β¨ SYNOPSIS β¨
$APT_CONFIG, /etc/apt/apt.conf, /etc/apt/apt.conf.d/*, $CUPT_PRE_CONFIG,
/etc/cupt/pre.conf, /etc/cupt/cupt.conf, /etc/cupt/cupt.conf.d/*
π¦ DESCRIPTION π¦
Cupt uses the exact same configuration syntax as apt.conf(5) β which see. and when I say same, I mean identical, no new grammar, no plot twist. if you already know apt config syntax you are already slaying this file. π«Ά
π CONFIGURATION VARIABLES π
π the APT ones first (we're borrowing, and we're grateful) π
Firstly, Cupt reads all of these APT configuration variables:
acquire::*::dl-limit, acquire::*::timeout, acquire::*::proxy,
acquire::http::allowredirect, acquire::retries, apt::cache::allversions,
apt::cache::important, apt::cache::namesonly,
apt::cache::recursedepends, apt::default-release,
apt::install-recommends, apt::install-suggests, apt::neverautoremove,
apt::get::assume-yes, apt::get::allowunauthenticated,
apt::get::automaticremove, apt::get::list-cleanup, apt::get::purge,
apt::update::pre-invoke, apt::update::post-invoke,
apt::update::post-invoke-success, dir, dir::bin::dpkg, dir::cache,
dir::cache::archives, dir::etc, dir::etc::sourcelist,
dir::etc::sourceparts, dir::etc::parts, dir::etc::main,
dir::etc::preferences, dir::ignore-files-silently, dir::state,
dir::state::extendedstates, dir::state::status, dir::etc::trusted,
dir::etc::trustedparts dpkg::options, dpkg::pre-invoke,
dpkg::post-invoke, dpkg::pre-install-pkgs, quiet
and what do they all mean, you ask? apt.conf(5), bestie. go read that one, it's all in there. we're not re-explaining apt's whole lore in this house. π
Secondly, Cupt introduces its own cupt-specific configuration variables β and those are the ones we're about to go through in full, because they're the main character here. π
π variable types π
every variable here is one of these four, so let's get the types straight first:
- boolean β
falsemay be specified as"0"or"false"or"no", and literally everything else gets interpreted as true. If it's undefined, it's interpreted as false. - integer β a signed 32-bit integer on 32-bit systems, and a signed 64-bit integer on 64-bit systems. If it's undefined, it's interpreted as
0. - string β interpreted as is. If it's undefined, it's interpreted as an empty string.
- list β a list of strings. If it's undefined, it's interpreted as an empty list.
π variables π
okay this is the long part, stay with me, we're going one by one. every single one. no skipping. π§
cupt::cache::limit-releases::by-*::typeβ string, determines the type of limiting repository releases to use. All repository indexes which are disallowed by this option are not added to the package cache β in other words, they're completely hidden. π'*'can bearchiveorcodename. Possible values:noneβ no limiting will be done for this category. The default.includeβ only values of the'cupt::cache::limit-releases::by-*'option will be allowed.excludeβ only values which are not present in the value of the'cupt::cache::limit-releases::by-*'option will be allowed. Example: if you set'cupt::cache::limit-releases::by-archive::type'to'include'and'cupt::cache::limit-releases::by-archive'to'{ "stable", "testing" };', only repositories with archive names'stable'and'testing'will be added to the cache.
cupt::cache::limit-releases::by-*β list of allowed/disallowed release attributes, see above β¬οΈcupt::cache::pin::addendums::but-automatic-upgradesβ integer, specifies the priority change for versions that come only from sources which have both'not automatic'and'but automatic upgrades'flags. Defaults to4200.cupt::cache::pin::addendums::downgradeβ integer, specifies the priority change for versions that are smaller than currently installed. Defaults to-10000.cupt::cache::pin::addendums::holdβ integer, specifies the priority increase for versions that are put on hold. Defaults to1000000. Set this option to0if you do not want to obey holds. You may want to increase this option in (very unlikely to happen) situations: when you have thousands of manually installed packages and a very large query; when you have a manually crafted pin priorities system with very large pin values.cupt::cache::pin::addendums::not-automaticβ integer, specifies the priority increase for versions that come only from'not automatic'sources. Defaults to-4000. If you change the value of this option, you might want to change the value of the option"cupt::cache::pin::addendums::but-automatic-upgrades"accordingly.cupt::cache::release-file-expiration::ignoreβ boolean, if set to true, Cupt will ignore the fact that a Release file is expired and use it anyway. False by default.
β οΈ Warning! Setting this option to true will make the system vulnerable to a replay attack on package manager indexes. like, actually. don't do it casually, bestie. π
cupt::console::allow-untrustedβ boolean, don't treat using untrusted packages as a dangerous action.cupt::console::assume-yesβ boolean, seecupt(1)--assume-yes.cupt::console::actions-preview::package-indicators::manually-installedβ boolean, whether to print the{m}prefix for manually installed packages in non-color mode. Enabled by default.cupt::console::actions-preview::package-indicators::automatically-installedβ boolean, whether to print the{a}prefix for automatically installed packages in non-color mode. Disabled by default.cupt::console::actions-preview::show-not-preferredβ string, determines whether packages which will have a not preferred version after the proposed changes are done should be shown in the actions preview. Defaults to'for-upgrades'. Possible values:noβ do not show.for-upgradesβ show for upgrade subcommands (namely, for"full-upgrade","safe-upgrade"and the second part of"dist-upgrade").yesβ show always.
cupt::console::actions-preview::show-archivesβ boolean, if true, release archive(s) will be shown for each package in the actions preview. False by default.cupt::console::actions-preview::show-codenamesβ boolean, if true, release codename(s) will be shown for each package in the actions preview. False by default.cupt::console::actions-preview::show-componentsβ boolean, if true, release component(s) will be shown for each package in the actions preview. False by default.cupt::console::actions-preview::show-detailsβ boolean, if true, details of planned actions will be shown in the actions preview. True by default.cupt::console::actions-preview::show-empty-versionsβ boolean, if true, empty versions (i.e. removed or not installed packages) will be shown as'<empty>'instead of being omitted.cupt::console::actions-preview::show-size-changesβ boolean, if true, a change in the disk space usage will be shown for each package in the actions preview. False by default.cupt::console::actions-preview::show-reasonsβ boolean, seecupt(1)--show-reasons.cupt::console::actions-preview::show-summaryβ string, tristate ("yes","no"or"auto"), controls whether the summary of planned actions will be shown in the actions preview or not. Defaults to"yes". Currently,"auto"means that the summary will be shown when there are>= 100change entries in total.cupt::console::actions-preview::show-versionsβ boolean, if true, a version will be shown for each package in the actions preview. False by default.cupt::console::actions-preview::show-vendorsβ boolean, if true, a version will be shown for each package in the actions preview. False by default.cupt::console::show-progress-messagesβ boolean, if true, package management actions will print stage messages ("Building a cache","Resolving possible unmet dependencies"etc.). True by default.cupt::console::use-colorsβ string, specifies whether to use colors in the console interface. Defaults to"auto". For now concerns only the action preview. Available values:noβ don't use colors.yesβ use colors.autoβ use colors if the standard output is a terminal and a terminal type seem to allow colors.
cupt::console::warnings::removal-of-essentialβ boolean, treat removals of essential packages as a dangerous action. True by default.cupt::console::warnings::removal-of-importantβ boolean, treat removals of important packages as a dangreous action. True by default.cupt::directoryβ string, base directory for allcupt::directory::*options.cupt::directory::configurationβ string, base directory for Cupt-specific configuration files.cupt::directory::configuration::mainβ string, relative file path for the Cupt main configuration file (same format asapt.conf(5)).cupt::directory::configuration::main-partsβ string, relative directory path for additional Cupt configuration files (same format asapt.conf(5)).cupt::directory::configuration::preβ string, relative file path for the Cupt preconfiguration file which is read before paths of any other configuration files are calculated. This is the only place where one can effectively override default values ofdir::etcandcupt::directory::configurationoptions and/or their suboptions. The environment variableCUPT_PRE_CONFIGoverrides this option if defined.cupt::directory::logβ string, relative file path for the log file.cupt::directory::stateβ string, directory which contains Cupt state info.cupt::directory::state::listsβ string, directory for repository indexes.cupt::downloader::max-simultaneous-downloadsβ integer, positive, specifies the maximum number of simultaneous downloads. Defaults to2.cupt::downloader::protocols::protocol::priorityβ integer, positive, defines the priority of download protocol protocol, and determines an order in which different URIs for the same file will be tried. Defaults to100.cupt::downloader::protocols::protocol::methods::method::priorityβ positive number, defines the priority of download method method; the method with maximum priority will be used for downloading the URI of protocol protocol. Defaults to100.cupt::downloader::protocols::protocol::methodsβ list, names of the methods available to download protocol protocol.cupt::languages::indexesβ string, specifies localizations of what languages should be used for repository indexes. Defaults to"environment,en". The value is a comma-delimited (no spaces allowed) list of localization specificators. A localization specificator is either:environmentβ a special string which is substituted by the current locale (precisely, by a value of the environment variableLC_MESSAGES).noneβ a special string which indicates no localization.language_code[_country_code]β a language code (for example:'fi','fr','ru') or a language code with a country code (for example,'pt_BR','zh_CN').
If your localization specificator has a country code in it, then the extra specifier without a country code gets implicitly used as a fallback. Auto. Built in. No cap. π«Ά
Localization specifiers go in preference order β most-wanted first, bestie. Duplicates? Allowed... but ignored. π So don't bother.
Examples:
fi,ru,fr : Download Finnish, Russian and French translations. For every description, try Finnish first; if it's not there, try Russian; if that's not there either, try French; and if literally none of them show up, you get the original one. π
pt_BR : Download Portuguese (Brazil) and Portuguese localizations. Use Portuguese (Brazil); if it's not available, use Portuguese; else original. Periodt. π
de,environment,fr_FR : (Assuming LC_MESSAGES is pl_PL.UTF-8.) Download and use these translations, in this exact order: German, Polish (Poland), Polish, French (France), French. Slay. β¨
cupt::update::check-release-filesβ boolean. If it's set, Release files get their validity checked (expiration check included, plus a signature if there is one) right at the download stage. True by default. πcupt::update::compression-types::*::priorityβ integer. Sets the preference for downloading compressed files β higher priority goes first. 100 by default.
That * can be gz, bz2, lzma, xz, and uncompressed, bestie. π
Want something to be low-precedence compared to default? Set it to a value <100. Want it high-precedence? >100. It's giving math but make it fashion. π
If some methods end up with the equal priority (which is the default setting), then the files with the smaller size get chosen over the bigger ones.
Example:
So imagine you've got a low-speed CPU but a pretty high-speed internet connection, and you'd rather have gzip over lzma, and lzma over bzip2. Then you set options like:
cupt::update::compression-types
{
gz::priority "200";
lzma::priority "150";
}
Also β if you have a local mirror, one that may store uncompressed indexes too (an official Debian archive doesn't store them, jsyk π), you may set also:
cupt::update::compression-types::uncompressed::priority "300";
cupt::update::generate-index-of-indexβ boolean. Specifies whether to build an "index-of-index" for every Packages and Sources. If you set it to true, it slightly increases the time of postprocessing after downloading new metadata files, but it speeds up significantly the initialization time for every single invocation. True by default. βcupt::update::use-index-diffsβ boolean. Specifies whether to try downloading repository index deltas and apply them locally before downloading the full index. True by default. π¦
Turned on, this option saves bandwidth but increases CPU and disk usage while updating. On fast unlimited connections (say, >= 2 Mbit/s, though honestly it heavily depends on many other factors), you'd probably wanna turn this one off. π
cupt::resolver::keep-recommendsβ boolean. Specifies whether the resolver should try to keep already installed recommended packages or not. True by default. β¨cupt::resolver::keep-suggestsβ boolean. Specifies whether the resolver should try to keep already installed suggested packages or not. False by default. πcupt::resolver::auto-removeβ boolean, seecupt(1)--no-auto-remove. πcupt::resolver::max-leaf-countβ integer. Specifies how many leaves the solution tree will grow before the resolver gives up.-1means infinite.-1by default. πΈcupt::resolver::max-solution-countβ integer, positive, seecupt(1)--max-solution-count.cupt::resolver::no-autoremove-if-rdepends-existβ list of regular expressions. If the package name matches any of those regular expressions, it will not be considered for auto-removal while there are any reverse dependencies installed. Empty by default.
Example (a simplified real situation):
Package: xserver-xorg
Depends: xserver-xorg-video-all | xorg-driver-video
Package: xserver-xorg-video-nv
Provides: xorg-driver-video
Package: xserver-xorg-video-radeon
Provides: xorg-driver-video
You have:
xserver-xorg: manually installedxserver-xorg-video-all: not installedxserver-xorg-video-nv: automatically installedxserver-xorg-video-radeon: automatically installed
Both xserver-xorg-video-nv and xserver-xorg-video-radeon satisfy the dependency of xserver-xorg, so only one of them is needed on the system. Which means, by default, one of these two will be considered for auto-removal. π But if you add the regular expression xserver-xorg-video.* to the value of this option, then none of the packages providing xorg-driver-video will be considered for auto-removal for as long as xserver-xorg is installed. Iconic. π
cupt::resolver::no-removeβ boolean, seecupt(1)--no-remove.cupt::resolver::synchronize-by-source-versionsβ string. This option controls whether and how the native resolver will attempt to keep all binary packages from the same source package at the same source version.
This option uses the information from source packages. No synchronization will be performed for the versions which don't have a corresponding source version in the repository.
Possible values:
noneβ Don't attempt to synchronize. This is the default value. π§softβ Don't forbid any modifications to the packages, and attempt to synchronize related binary packages when possible upon the modifications of a certain binary package.hardβ Forbid any modifications to the packages when at least one related binary package cannot be synchronized with the modified one. Strict! π
cupt::resolver::track-reasonsβ boolean. Specifies whethersuggestedPackages::reasonsis filled in theResolver::Offer. False by default. πcupt::resolver::typeβ string, seecupt(1)--resolver.cupt::resolver::score::<part>β a whole group of integer options that control the internal resolver's score calculation. Values are absolute. π
<part> can be one of:
newβ installing a new packageremovalβ removal of an existing packageremoval-of-essentialβ removal of an existing essential package (a general removal option is applied as well)removal-of-autoinstalledβ removal of an automatically installed package (a general removal option is applied as well)upgradeβ installing a higher version of an existing packagedowngradeβ installing a lower version of an existing packageposition-penaltyβ when several actions may be performed to resolve a problem, apply N penalties to the N-th action (counting from 0)quality-adjustmentβ the value will be added to each action's scoreunsatisfied-recommendsβ somerecommendsdependency is not satisfied (when requested)unsatisfied-suggestsβ somesuggestsdependency is not satisfied (when requested)failed-synchronizationβ some source version synchronization cannot be performed (whencupt::resolver::synchronize-source-versionsissoft)version-factor::commonβ defines (in percents) how much version score difference affects the action scoreversion-factor::negativeβ defines (in percents) scaling of negative version scores (applied afterversion-factor)version-factor::priority-downgradeβ defines (in percents) scaling of version score if the version priority difference is negative. For calculations regarding this factor: if there is no original version, its priority is 0; if there is no supposed version, its priority is the default priority for versions from a default package archive.
cupt::worker::archives-space-limitβ integer, bytes, positive. If it's set, it limits the worker to not download more than the specified amount of archives, and uses the download-install-clean algorithm (download archives, install packages, clean just the downloaded archives). The worker will try to split all actions into unrelated changesets so each changeset requires only limited download space. Any system changes will be started only if the changesets are generated successfully. β¨cupt::worker::defer-triggersβ string. Specifies whether the worker should deferdpkgtrigger processing to the end of the whole operation or not. When enabled, it speeds up large-amount actions β but if the operation gets interrupted for some reason, it leaves the system in the interim trigger state, which can be fixed by manually runningdpkg --triggers-only --pending. Defaults to"auto". πΈ
Available values:
noβ Disable deferring triggers.yesβ Enable deferring triggers.autoβ Enable deferring triggers if a recent enough version ofdpkgis installed (1.16.1, where that tiresome trigger-related bug (Debian BTS#526774) is fixed). π
cupt::worker::download-onlyβ boolean, seecupt(1)--download-only.cupt::worker::logβ boolean. Whether to log performed actions or not. True by default. πcupt::worker::log::levels::metadataβ non-negative integer. The log level for the metadata updates.1by default.cupt::worker::log::levels::packagesβ non-negative integer. The log level for the package changes (install/upgrade/remove etc.).2by default.cupt::worker::log::levels::snapshotsβ non-negative integer. The log level for the snapshot actions.1by default.cupt::worker::purgeβ boolean. Specifies whether to purge packages in addition to removing them or not. False by default. πcupt::worker::simulateβ boolean, seecupt(1)--simulate.cupt::worker::use-locksβ boolean. Specifies whether Cupt protects simultaneous runs of itself against the misuse of the common resources. True by default. π
Warning! Setting this option to false will allow several non-simulating Cupt instances to break the system when misused. Not the vibe. π
debug::resolverβ boolean. If true, the resolver will print a lot of debug information to the standard error. False by default. πdebug::workerβ boolean. If true, the worker will print some debug information to the standard error. False by default.debug::gpgvβ boolean. If true, the cache will print some debug information while verifying signatures, to the standard error. False by default. π¦debug::downloaderβ it's a boolean, bestie π set it to true and the downloader manager will spill some debug messages your way. Default is false, so if you do nothing it stays quiet. yes boo, silence is the default settingdebug::loggerβ also a boolean π if true, the logger itself starts printing debug messages. False by default, so again, no noise unless you ask for it. turn it on and watch the logs get chatty fr fr
β¨ SEE ALSO β¨
cupt(1)β the main character, the actual program πapt.conf(5)β the config file format it's giving, in case you wanna compare notes π
and that's the whole page, bestie π«Ά no cap, you made it to the end. this was CUPT.CONF(5), brought to you by perl v5.38.2 and dated 2024-03-31 β iconic, timeless, slay π
β¨
π¦ where this page comes from
- ubuntu noble: cupt 2.10.4+nmu2build2
- ubuntu resolute: cupt 2.10.4+nmu2build2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms