RPM-COMMON(8) System Manager's Manual RPM-COMMON(8)

# [NAME](#NAME)

rpm-common - Operations and options common to the main [**rpm**(8)](/man/os/rpm/rpm.8) executables

# [SYNOPSIS](#SYNOPSIS)

*RPMCMD* \[options] {**-?**|**--help**}

*RPMCMD* \[options] **--showrc**

*RPMCMD* \[options] **--version**

# [DESCRIPTION](#DESCRIPTION)

The following *RPMCMD* executables share common configuration and the options and operations documented in this manual:

- [**rpm**(8)](/man/os/rpm/rpm.8)
- [**rpmdb**(8)](/man/os/rpm/rpmdb.8)
- [**rpmkeys**(8)](/man/os/rpm/rpmkeys.8)
- [**rpmbuild**(1)](/man/os/rpm/rpmbuild.1)
- [**rpmsign**(1)](/man/os/rpm/rpmsign.1)
- [**rpmspec**(1)](/man/os/rpm/rpmspec.1)

# [OPERATIONS](#OPERATIONS)

**-?**, **--help**

Print a longer usage message than normal.

**--version**

Print a single line containing the version number of **rpm** being used.

**--showrc**

Dump information about **rpm** configuration to standard output.

# [OPTIONS](#OPTIONS)

**--color** &lt;*MODE*&gt;

Use terminal colors for highlighting error and debug message, where *MODE* is one of:

- **always**
- **auto** (use color output on terminals)
- **never** (default)

**--dbpath** *DIRECTORY*

Use the database in *DIRECTORY* rather than the default path */var/lib/rpm*.

**-D** '*MACRO* *EXPR*', **--define**='*MACRO* *EXPR*'

Defines *MACRO* with value *EXPR*.

**-E** '*EXPR*', **--eval**='*EXPR*'

Prints [**rpm-macros**(7)](/man/os/rpm/rpm-macros.7) expansion of *EXPR*.

**--load** *FILE*

Load an individual [**rpm-macrofile**(5)](/man/os/rpm/rpm-macrofile.5).

**--macros** *FILELIST*

Replace the list of macro files to be loaded with *FILELIST*. See **Macro Configuration** for details.

**--nodigest**

Don't verify package or header digests when reading.

**--nohdrchk**

Don't verify database header(s) when retrieved.

**--nosignature**

Don't verify package or header signatures when reading.

**--pipe** *CMD*

Pipes the output of **rpm** to the command *CMD*.

**--predefine**='*MACRO* *EXPR*'

Defines *MACRO* with value *EXPR* before loading macro files. This is a very rare special-purpose switch, use **--define** for the common macro definition needs.

**--target** *PLATFORM*

Use *PLATFORM* configuration instead of detecting automatically. *PLATFORM* is formed as *arch*\[-*os*].

**--quiet**

Print as little as possible - normally only error messages will be displayed.

**--rcfile** *FILELIST*

Replace the default list of configuration files to be read with *FILELIST*. See **rpmrc Configuration** for details.

**--root** *DIRECTORY*

Use the filesystem tree rooted at *DIRECTORY* for all operations. Note that this means the database within *DIRECTORY* will be used for dependency checks and any scriptlet(s) (e.g. **%post** if installing, or **%prep** if building, a package) will be run after a [**chroot**(2)](/man/os/rpm/chroot.2) to *DIRECTORY*.

Note that **rpm** assumes the environment inside the root is set up by the caller, such as any mounts needed for the operation inside the root directory.

NSS (Name Service Switch) will *not* be used for user and group lookups in package operations. Instead, **rpm** will do its own file-based lookups using the [**passwd**(5)](/man/os/rpm/passwd.5) and [**group**(5)](/man/os/rpm/group.5) files in their standard locations, or those set in [**rpm-config**(5)](/man/os/rpm/rpm-config.5), inside *DIRECTORY*. Note that, if *DIRECTORY* is */* (the forward slash), NSS will be used as normal.

**--undefine**='*MACRO*'

Undefines *MACRO*.

**-v**, **--verbose**

Print verbose information - normally routine progress messages will be displayed. Supply more than once to increase verbosity, eg. **-vv**.

# [DEBUG OPTIONS](#DEBUG_OPTIONS)

**--debug**

Print lots of debug information.

**--fsmdebug**

Print debug information about payload handling.

**--rpmiodebug**

Print debug information about file IO.

**--stats**

Print runtime statistics of often used functions.

# [FTP/HTTP OPTIONS](#FTP/HTTP_OPTIONS)

These options are deprecated. Use special purpose software such as [**curl**(1)](/man/os/rpm/curl.1) or [**wget**(1)](/man/os/rpm/wget.1) for fetching data from the internet.

For some operations, **rpm** can act as an FTP and/or HTTP client so that packages can be queried or installed from the internet. Package files for install, upgrade, and query operations may be specified as an **ftp** or **http** style URL:

*http://HOST\[:PORT]/path/to/package.rpm*

*ftp://\[USER:PASSWORD]@HOST\[:PORT]/path/to/package.rpm*

If both the user and password are omitted, anonymous **ftp** is used.

**rpm** allows the following options to be used with **http** and **ftp** URLs:

**--httpproxy** *HOST*

Use *HOST* as the proxy server for all **http** and **ftp** transfers. This option may also be specified by configuring the macro **%\_httpproxy**.

**--httpport** *PORT*

The TCP *PORT* number to use for the **http** connection on the proxy http server instead of the default port. This option may also be specified by configuring the macro **%\_httpport**.

# [ENVIRONMENT](#ENVIRONMENT)

**RPM\_CONFIGDIR**

Used to override the default **rpm** configuration home, typically */usr/lib/rpm*.

# [EXIT STATUS](#EXIT_STATUS)

On success, 0 is returned, a nonzero failure code otherwise.

# [BUGS](#BUGS)

Not all options are meaningful or implemented in all the executables they show in. In particular, **--root** and the various verify-related options are only honored by [**rpm**(8)](/man/os/rpm/rpm.8) and [**rpmdb**(8)](/man/os/rpm/rpmdb.8).

# [FILES](#FILES)

## [Database](#Database)

```
/var/lib/rpm/
```

## [Temporary](#Temporary)

```
/var/tmp/rpm*
```

# [SEE ALSO](#SEE_ALSO)

[**popt**(3)](/man/os/rpm/popt.3), [**rpm**(8)](/man/os/rpm/rpm.8) [**rpm-config**(5)](/man/os/rpm/rpm-config.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-common(8) from rpm 6.1.0-r2 (Chainguard OS)
Source: https://github.com/rpm-software-management/rpm
