DOWNGRADE(8) System Manager's Manual DOWNGRADE(8)

downgrade — downgrade arch linux packages

downgrade [-h] [--ala-only] [--ala-url=url] [--cached-only] [--ignore=prompt|always|never] [--latest | --oldest] [--maxdepth=num] [--pacman-cache=file] [--pacman-conf=file] [--pacman-log=file] [--pacman=command] [--prefer-cache] [--unignore name [name ...]] [--version] [name ...] [-- pacman-option ...]

The downgrade utility is a terminal user interface ("TUI") for downgrading arch linux packages.

Packages can be located and installed from the local pacman(8) cache or the remote Arch Linux Archive ("ALA").

Calling downgrade for the terraform package, for example, might show:

-  1)  terraform    0.11.11  2  remote
-  2)  terraform    0.11.12  1  /var/cache/pacman/pkg
+  3)  terraform    0.11.13  1  remote
+  4)  terraform    0.11.13  1  /var/cache/pacman/pkg
-  5)  terraform    0.12.0   1  remote
-  6)  terraform    0.12.0   1  /var/cache/pacman/pkg
   7)  terraform    0.12.1   1  remote

Available packages (community):
7/7
>

The columns have the following meaning:
: -|+
An indication that the package was previously installed ("-"), or is currently installed ("+").
An enumeration of the entries for selection.
The name of the package.
The epoch of the package in cache or ALA.
The version of the package in cache or ALA.
The release of the package in cache or ALA.
: /path/to/cache/dir|remote
If you have aleady downloaded this package, this will show the cache directory where the package is located, or "remote" if it is available in the ALA.

command
Pacman command, default is pacman.
--pacman-conf=file
Pacman configuration file, default is /etc/pacman.conf.
--pacman-cache=file
Pacman cache directory, default value(s) taken from pacman configuration file, or otherwise defaults to /var/cache/pacman/pkg. This option can be specified multiple times to indicate multiple cache directories.
--pacman-log=file
Pacman log file, default value is extracted from pacman configuration file, or otherwise defaults to /var/log/pacman.log.
num
Maximum depth to search for cached packages, defaults to 2.
url
Location of an ALA server, default is https://archive.archlinux.org.
Search ALA only.
Search local cache only.
prompt|always|never
Whether to add packages to IgnorePkg, default is prompt.
package [package ...]
Remove packages from IgnorePkg. This is a pass-through to pacignore(8)
|
Never prompt for version or location, automatically pick the most up to date/most out of date version. Allows for noninteractive downgrades when used in conjunction with --ignore.
If a package matching the version filter is found in the cache, skip querying the ALA. Unlike --cached-only, --prefer-cache does query the ALA if no package could be matched in cache.
Show downgrade version.
, --help
Show help script.
name
Name of the package to downgrade.

If multiple names are given, each is presented for version selection first, and remote packages are downloaded, before all selections are installed together via a single pacman -U invocation. This allows for a coherent set of dependent packages to be dowgraded together.

As per the usage syntax, any options supplied after the -- character sequence will be treated as pacman options.

By default, downgrade will search both local caches and the ALA.

AUR helper cache directories (~/.cache/yay, ~/.cache/paru/clone) are automatically included if present, so AUR packages are found without extra configuration.

If only one package with its corresponding location matches, the package will be installed without further prompt from the user.

downgrade allows the use of the following version-filtering operators: =, ==, =~, <=, >=, < and >.

Note that =~ represents a regex match operator and =/== are aliases.

The downgrade utility exits 0 on success, and >0 if an error occurs.

Common errors are:

/etc/xdg/downgrade/downgrade.conf
Command-line options can be set persistently in this file.

See downgrade.conf(5).

Downgrade packages checking both local cache and the A.L.A, which is the default behavior:

downgrade foo bar
Downgrade packages, specifying multiple cache directories:
downgrade --pacman-cache /path/to/cache --pacman-cache /path/to/other/cache foo bar
Downgrade a package with version-filtering:
downgrade 'foo=1.0.0-1' 'bar>=1.2.1-1' 'baz=~^1.2'
Downgrade a package, looking in only local cache:
downgrade --cached-only foo
Downgrade a package, looking in only the A.L.A.:
downgrade --ala-only foo
Non-interactively downgrade foo to 1.0.0-1
downgrade --latest --prefer-cache --ignore -never 'foo=1.0.0-1'
Downgrade an AUR package with version-filtering (git versions are shown automatically when a git repo is found in the cache):
downgrade 'downgrade>9.0.0'

Patrick Brisbin <pbrisbin@gmail.com>
Atreya Shankar <shankar.atreya@gmail.com>

Open a GitHub issue on https://github.com/archlinux-downgrade/downgrade.

find(1), fzf(1), su(1), downgrade.conf(5), pacman.conf(5), pacman(8), sudo(8), vercmp(8).

September 9, 2026 Debian