---
name: "cupt.conf"
section: "5"
platform: "linux"
package: "cupt"
version: "2.10.4+nmu2+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cupt.conf"
---

# cupt.conf(5)

configuration file for Cupt

## NAME

cupt.conf - configuration file for Cupt

## 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 same configuration syntax as [**apt.conf**(5)](/apt.conf/5.md), which see.

## CONFIGURATION VARIABLES

Firstly, Cupt uses following 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

See [**apt.conf**(5)](/apt.conf/5.md) for their meanings.

Secondly, Cupt introduces cupt-specific configuration variables.

### variable types

- boolean

  false may be specified as "0" or "false" or "no", everything else interpretes as true

  if undefined, interpretes as false

- integer

  signed 32-bit integer on 32-bit systems, signed 64-bit integer on 64-bit systems

  if undefined, interpretes as 0

- string

  interpreted as is

  if undefined, interpretes as empty string

- list

  list of strings

  if undefined, intepretes as empty list

### variables

- 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 are completely hidden.

  '\*' can be 'archive' or 'codename'

  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 priority change for versions that come only from sources which have both 'not automatic' and 'but automatic upgrades' flags. Defaults to 4200.

- cupt::cache::pin::addendums::downgrade

  integer, specifies priority change for versions that are smaller than currently installed. Defaults to -10000.

- cupt::cache::pin::addendums::hold

  integer, specifies priority increase for versions that are put on hold. Defaults to 1000000. Set this option to 0 if 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 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 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.**

- cupt::console::allow-untrusted

  boolean, don't treat using untrusted packages as dangerous action

- cupt::console::assume-yes

  boolean, see [**cupt**(1)](/cupt/1.md) --assume-yes

- cupt::console::actions-preview::package-indicators::manually-installed

  boolean, whether to print `"{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 `"{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, see [**cupt**(1)](/cupt/1.md) --show-reasons

- cupt::console::actions-preview::show-summary

  string, tristate ("yes", "no" or "auto"), controls whether summary of planned actions will be shown in the actions preview or not. Defaults to "yes".

  Currently, "auto" means that summary will be shown when there are \>= 100 change 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 dangerous action. True by default.

- cupt::console::warnings::removal-of-important

  boolean, treat removals of important packages as dangreous action. True by default.

- cupt::directory

  string, base directory for all cupt::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 as [**apt.conf**(5)](/apt.conf/5.md))

- cupt::directory::configuration::main-parts

  string, relative directory path for additional Cupt configuration files (same format as [**apt.conf**(5)](/apt.conf/5.md))

- 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 of dir::etc and cupt::directory::configuration options and/or their suboptions. The environment variable **CUPT\_PRE\_CONFIG** overrides 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 maximum number of simultaneous downloads. Defaults to 2.

- cupt::downloader::protocols::*protocol*::priority

  integer, positive, defines the priority of download protocol *protocol*, determines an order in which different URIs for the same file will be tried. Defaults to 100.

- 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 to 100.

- 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 comma-delimited (no spaces allowed) list of localization specificators. Localization specificator is either:

  - environment

    A special string which is substituted by the current locale (precisely, by a value of the environment variable LC\_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 the localization specificator contains a country code, the additional specificator without a country code will be implicitly used as fallback.

  Localization specificators should be listed in the preference order. Duplicates are allowed but ignored.

  Examples:

  - fi,ru,fr

    Download Finnish, Russian and French translations. For every description, try to use Finnish translation; if it's not available, try to use Russian one; if it's also not available; try to use French one; else use an original one.

  - pt\_BR

    Download Portuguese (Brazil) and Portuguese localizations. Use Portuguese (Brazil) translation; if it's not available, use Portuguese translation; else use an original one.

  - de,environment,fr\_FR

    (Supposing LC\_MESSAGES is 'pl\_PL.UTF-8')

    Download and use these translations, in the following order: German, Polish (Poland), Polish, French (France), French.

- cupt::update::check-release-files

  boolean, if set, Release files will be checked for the validity (including the expiration check and a signature if present) at the download stage. True by default.

- cupt::update::compression-types::\*::priority

  integer, defines preference to download compressed files with higher priority first. 100 by default.

  '\*' can be 'gz', 'bz2', 'lzma', 'xz', and 'uncompressed'.

  Set some option to \<100 value to make it low-precedence than default, and \>100 to make it high-precedence than default.

  If some methods have the equal priority (which is the default setting), then files with smaller size with be chosen over the files with bigger size.

  Example:

  You have a low-speed CPU but rather high-speed internet connection and want to prefer gzip over lzma and lzma over bzip2. Then you have to set options like:

  ```
    cupt::update::compression-types
    {
      gz::priority "200";
      lzma::priority "150";
    }
  ```

  Also, if you have a local mirror, which may store uncompressed indexes too (an official Debian archive doesn't store them), you may set also

  cupt::update::compression-types::uncompressed::priority "300";

- cupt::update::generate-index-of-index

  boolean, specifies whether to build "index-of-index" for every Packages and Sources. If set to true, slightly increases the time of postprocessing after downloading new metadata files but speedes up significantly the initialization time for every 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.

  When turned on, this option saves bandwidth but increases CPU and disk usage while updating. On the fast unlimited connections (say, \>= 2 Mbit/s, but heavily depends on many other factors) you would likely want to turn off this option.

- cupt::resolver::keep-recommends

  boolean, specifies whether should resolver try to keep already installed recommended packages or not. True by default.

- cupt::resolver::keep-suggests

  boolean, specifies whether should resolver try to keep already installed suggested packages or not. False by default.

- cupt::resolver::auto-remove

  boolean, see [**cupt**(1)](/cupt/1.md) --no-auto-remove

- cupt::resolver::max-leaf-count

  integer, specifies how many leaves the solution tree will grow before resolver will give up. -1 means infinite. -1 by default.

- cupt::resolver::max-solution-count

  integer, positive, see [**cupt**(1)](/cupt/1.md) --max-solution-count

- cupt::resolver::no-autoremove-if-rdepends-exist

  list of regular expressions; if the package name matches to any of those regular expressions it will be not considered for auto-removal if there are any reverse dependencies installed. Empty by default.

  Example (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 installed
   xserver-xorg-video-all: not installed
   xserver-xorg-video-nv: automatically installed
   xserver-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 in the system. Therefore, by default one of these two will be considered for auto-removal. If you add a regular expression 'xserver-xorg-video.\*' to the value of this option, none of packages providing xorg-driver-video will be considered for auto-removal as long as xserver-xorg is installed.

- cupt::resolver::no-remove

  boolean, see [**cupt**(1)](/cupt/1.md) --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 have not 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 certain binary package.

  - hard

    Forbid any modifications to the packages when at least one related binary package cannot be synchronized with the modified one.

- cupt::resolver::track-reasons

  boolean, specifies whether 'suggestedPackages::reasons' is filled in the Resolver::Offer. False by default.

- cupt::resolver::type

  string, see [**cupt**(1)](/cupt/1.md) --resolver

- cupt::resolver::score::\<part\>

  The group of integer options which control internal resolver's score calculation. Values are absolute.

  \<part\> can be one of:

  - new

    installing a new package

  - removal

    removal of an existing package

  - removal-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 package

  - downgrade

    installing a lower version of an existing package

  - position-penalty

    when several actions may be performed to resolve a problem, apply N penalties to N-th action (counting from 0)

  - quality-adjustment

    the value will be added to each action's score

  - unsatisfied-recommends

    some 'recommends' dependency is not satisfied (when requested)

  - unsatisfied-suggests

    some 'suggests' dependency is not satisfied (when requested)

  - failed-synchronization

    some source version synchronization cannot be performed (when cupt::resolver::synchronize-source-versions is 'soft')

  - version-factor::common

    defines (in percents), how much version score difference affects the action score

  - version-factor::negative

    defines (in percents) scaling of negative version scores (applied after **version-factor**)

  - version-factor::priority-downgrade

    defines (in percents) scaling of version score if 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 set, limits the worker to not download more than specified amount of archives, and use download-install-clean algorithm (download archives, install packages, clean just downloaded archives).  Worker will try to split all actions into unrelated changesets so each changeset require only limited download space. Any system changes will be started only if changesets are generated successfully.

- cupt::worker::defer-triggers

  string, specifies whether should worker defer dpkg trigger processing to the end of the whole operation or not. When enabled, speeds up large-amount actions, but if the operation will somewhy be interrupted, leaves system in the interim trigger state, which can be fixed by manual run of 'dpkg --triggers-only --pending' command. Defaults to "auto".

  Available values:

  - no

    Disable deferring triggers.

  - yes

    Enable deferring triggers.

  - auto

    Enable deferring triggers if enough recent version of dpkg (1.16.1, where tiresome trigger-related bug (Debian BTS #526774) is fixed) is installed.

- cupt::worker::download-only

  boolean, see [**cupt**(1)](/cupt/1.md) --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. 1 by default.

- cupt::worker::log::levels::packages

  non-negative integer, the log level for the package changes (install/upgrade/remove etc.). 2 by default.

- cupt::worker::log::levels::snapshots

  non-negative integer, the log level for the snapshot actions. 1 by default.

- cupt::worker::purge

  boolean, specifies whether purge packages in addition to removing or not. False by default.

- cupt::worker::simulate

  boolean, see [**cupt**(1)](/cupt/1.md) --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.**

- debug::resolver

  boolean, if true, resolver will print a lot of debug information to the standard error. False by default.

- debug::worker

  boolean, if true, worker will print some debug information to the standard error. False by default.

- debug::gpgv

  boolean, if true, cache will print some debug information while verifying signatures to the standard error. False by default.

- debug::downloader

  boolean, if true, the downloader manager will print some debug messages. False by default.

- debug::logger

  boolean, if true, the logger will print some debug messages. False by default.

## SEE ALSO

[**cupt**(1)](/cupt/1.md), [**apt.conf**(5)](/apt.conf/5.md)
