RPM-CONFIG(5) File Formats Manual RPM-CONFIG(5)

# [NAME](#NAME)

**rpm-config** - rpm runtime macro configuration

# [SYNOPSIS](#SYNOPSIS)

*NAME* *VALUE*

# [FILES](#FILES)

*/usr/lib/rpm/macros*  
*/usr/lib/rpm/macros.d/macros.\**  
*/usr/lib/rpm/platform/%{\_target}/macros*  
*/usr/lib/rpm/fileattrs/\*.attr*  
*/usr/lib/rpm/&lt;vendor&gt;/macros*  
*/etc/rpm/macros.\**  
*/etc/rpm/macros*  
*/etc/rpm/%{\_target}/macros*  
*~/.config/rpm/macros*

# [DESCRIPTION](#DESCRIPTION)

The primary configuration mechanism in **rpm** is [**rpm-macros**(7)](/man/os/rpm/rpm-macros.7). On startup, **rpm** reads a set of [**rpm-macrofile**(5)](/man/os/rpm/rpm-macrofile.5) files determined by the *macro path*.

Each file or [**glob**(7)](/man/os/rpm/glob.7) pattern in the colon-separated *macro path* is read sequentially by **rpm** for macro definitions. **%{\_target}** is expanded to the detected &lt;arch&gt;-&lt;os&gt; platform. Tildes are expanded to the value of the environment variable **HOME**.

If a macro is defined multiple times, the last entry wins. The default *macro path* uses this to achieve the following hierarchy of settings:

1\.

Generic **rpm** factory defaults

2\.

Platform-specific **rpm** factory defaults

3\.

Vendor (distribution) specific settings

4\.

Host specific settings

5\.

User specific settings

6\.

Command-line override settings

The default *macro path* can be inspected with **rpm --showrc|grep ^Macro**.

In older versions of rpm, the path of per-user macros was *~/.rpmmacros*. This is still processed if it exists and the new configuration directory does not exist.

# [CONFIGURATION](#CONFIGURATION)

The following configurables are supported for the **rpm** runtime (as opposed to just package building) parts:

**%\_color\_output** *MODE*

Output coloring mode. Valid values are **never** and **auto**.

**%\_db\_backend** *BACKEND*

The database backend to use. Possible values for *BACKEND* are:

- **dummy**: Dummy backend (no actual functionality)
- **bdb\_ro**: Berkeley DB (read-only)
- **ndb**: Native database (no external dependencies)
- **sqlite**: Sqlite database

**%\_dbpath** *DIRECTORY*

The location of the rpm database file(s).

**%\_excludedocs** *VALUE*

Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files marked as %doc should be installed.

**%\_flush\_io** *VALUE*

Flush file IO during transactions (at a severe cost in performance for rotational disks). Possible values are 1 to enable, 0 to disable.

**%\_group\_path** *PATHS*

A colon separated list of [**group**(5)](/man/os/rpm/group.5) file paths for group name and GID lookups in package operations. Files are consulted in the given order until a match is found.

If unset or empty, **rpm** uses NSS (Name Service Switch) when operating on the system root, or */etc/group* inside the target root when using **--root** (see [**rpm-common**(8)](/man/os/rpm/rpm-common.8) for details).

**%\_httpport** *PORT*

The port of HTTP proxy (used for FTP/HTTP).

**%\_httpproxy** *HOSTNAME*

The hostname of HTTP proxy (used for FTP/HTTP).

**%\_install\_langs** *LOCALES*

A colon separated list of desired locales to be installed; **all** means install all locale specific files.

**%\_install\_script\_path** *PATH*

The PATH used in [**rpm-scriptlet**(7)](/man/os/rpm/rpm-scriptlet.7) execution environment.

**%\_keyring** *BACKEND*

The keyring type to use. Possible values for *BACKEND* are:

- **fs**: Plain ASCII files in a directory
- **openpgp**: Shared OpenPGP certificate directory
- **rpmdb**: Pseudo-packages in the rpmdb

**%\_keyringpath** *DIRECTORY*

The location of the keyring path for non-rpmdb variants.

**%\_minimize\_writes** *VALUE*

Minimize writes during transactions (at the cost of more reads) to conserve eg SSD disks (EXPERIMENTAL). Possible values are:

- **0**: disable
- **1**: enable
- **-1**: (or undefined) autodetect on platforms where supported, otherwise default to disabled

**%\_netsharedpath** *PATH*

A colon separated list of paths where files should **not** be installed. Usually, these are network filesystem mount points.

**%\_passwd\_path** *PATHS*

A colon separated list of [**passwd**(5)](/man/os/rpm/passwd.5) file paths for username and UID lookups in package operations. Files are consulted in the given order until a match is found.

If unset or empty, **rpm** uses NSS (Name Service Switch) when operating on the system root, or */etc/passwd* inside the target root when using **--root** (see [**rpm-common**(8)](/man/os/rpm/rpm-common.8) for details).

**%\_pkgverify\_digests** *HASHALGOS*

A colon separated list of hash algorithms to calculate digests on the entire package files during verification. The calculated digests are stored in the **Packagedigests** tag of packages in the rpmdb, and the corresponding algorithms in the **Packagedigestalgos** tag. No package digests are calculated or stored if **--noverify** is used during package installation.

**%\_pkgverify\_flags** *VSFLAGS*

Transaction package verification flags, used for fine-grained control of **%\_pkgverify\_level** operation. Set to 0x0 for full compatibility with v4 packages.

**%\_pkgverify\_level** *MODE*

Enforced package verification mode in transactions, where *MODE* is one of:

- **all**: require valid digest(s) and signature(s)
- **signature**: require valid signature(s)
- **digest**: require valid digest(s)
- **none**: legacy rpm behavior, nothing required

**%\_prefer\_color** *VALUE*

Package conflict resolution in bi-arch transactions. See also **%\_transaction\_color**. Possible values are:

- **0**: disabled
- **1**: prefer 32-bit packages
- **2**: prefer 64-bit packages

**%\_\_plugindir** *DIRECTORY*

Transaction plugin directory.

**%\_query\_all\_fmt** *FORMAT*

Default output format for [**rpm**(8)](/man/os/rpm/rpm.8) query operations, as described by [**rpm-queryformat**(7)](/man/os/rpm/rpm-queryformat.7). Percent signs need to be escaped, for example **%%{nevra}**.

**%\_rpmlock\_path** *FILE*

The path of the file used for transaction fcntl lock.

**%\_tmppath** *PATH*

The directory where temporary files are created.

**%\_\_urlhelpercmd** *EXECUTABLE*

The executable to use for retrieving remote files.

**%\_\_urlhelperopts** *OPTIONS*

Generic options to pass to the **%\_\_urlhelpercmd** command.

**%\_\_urlhelper\_localopts** *OPTIONS*

User/host specific options to pass to the **%\_\_urlhelpercmd** command.

**%\_\_urlhelper\_proxyopts** *OPTIONS*

Proxy options to pass to the **%\_\_urlhelpercmd** command.

**%\_urlhelper** *COMMAND*

Full command (with options) to use when retrieving remote files. Normally pieced together from the double-underscore **%\_\_urlhelper\*** macros.

**%\_transaction\_color** *VALUE*

Package and file conflict behavior in bi-arch transactions. See also **%\_prefer\_color**. Possible values are:

- **0**: do not consider "colors", only use arch compatibility map
- **1**: only allow 32-bit packages
- **2**: only allow 64-bit packages
- **3**: allow 32- and 64-bit packages to share files

**%\_vsflags\_erase** *VSFLAGS*

Transaction verification flags used when erasing or updating packages.

**%\_vsflags\_install** *VSFLAGS*

Transaction verification flags used when installing packages.

**%\_vsflags\_query** *VSFLAGS*

Transaction verification flags used when querying packages.

**%\_vsflags\_rebuilddb** *VSFLAGS*

Transaction verification flags used when rebuilding the database.

**%\_vsflags\_verify** *VSFLAGS*

Transaction verification flags used when verifying packages.

## [Verification flags](#Verification_flags)

Digest/signature verification flags for various rpm operations are controlled by a bitmask known as *VSFLAGS*. These flags control various aspects of digital checksum and signature verification when reading rpm package files and their headers.

*VSFLAGS* is formed by bitwise or'ing the individual flags:

- **0x00001** (RPMVSF\_NOHDRCHK): don't verify headers from rpmdb
- **0x00100** (RPMVSF\_NOSHA1HEADER): don't verify header SHA1 digest
- **0x00200** (RPMVSF\_NOSHA256HEADER): don't verify header SHA256 digest
- **0x00400** (RPMVSF\_NODSAHEADER): don't verify header DSA signature(s)
- **0x00800** (RPMVSF\_NORSAHEADER): don't verify header RSA signature(s)
- **0x01000** (RPMVSF\_NOOPENPGP): don't verify header OpenPGP signature(s)
- **0x02000** (RPMVSF\_NOSHA3\_256HEADER): don't verify header SHA3\_256 digest
- **0x04000** (RPMVSF\_NOSHA512PAYLOAD): don't verify package payload SHA512 digest
- **0x08000** (RPMVSF\_NOSHA3\_256PAYLOAD): don't verify package payload SHA3\_256 digest
- **0x10000** (RPMVSF\_NOSHA256PAYLOAD): don't verify package payload SHA256 digest
- **0x20000** (RPMVSF\_NOMD5): don't verify legacy header+payload MD5 digest
- **0x40000** (RPMVSF\_NODSA): don't verify legacy header+payload DSA signature
- **0x80000** (RPMVSF\_NORSA): don't verify legacy header+payload RSA signature

RPM's Python bindings can be helpful for working with these values, for example:

```
>>> import rpm
>>> hex(rpm.RPMVSF_NOSHA1HEADER)
'0x100'
>>> hex(rpm.RPMVSF_NOSHA1HEADER|rpm.RPMVSF_NOMD5)
'0x20100'
>>>
```

## [Hash algorithms](#Hash_algorithms)

The following hash algorithms (denoted by *HASHALGO*) are known to rpm, but availability can vary depending how rpm and it's underlying libraries have been built:

- **1**: MD5 (obsolete)
- **2**: SHA1 (obsolete)
- **8**: SHA256
- **9**: SHA384
- **10**: SHA512
- **12**: SHA3-256
- **14**: SHA3-512

# [ENVIRONMENT](#ENVIRONMENT)

If **XDG\_CONFIG\_HOME** environment variable is set, it replaces *~/.config* in the *macro path*.

# [SEE ALSO](#SEE_ALSO)

[**rpm**(8)](/man/os/rpm/rpm.8), [**rpm-common**(8)](/man/os/rpm/rpm-common.8), [**rpm-macrofile**(5)](/man/os/rpm/rpm-macrofile.5), [**rpm-rpmrc**(5)](/man/os/rpm/rpm-rpmrc.5), [**rpm-macros**(7)](/man/os/rpm/rpm-macros.7)

2026-10-04 RPM 6.1.0

---

Document: rpm-config(5) from rpm 6.1.0-r2 (Chainguard OS)
Source: https://github.com/rpm-software-management/rpm
