---
name: "rpm-common"
section: "8"
platform: "linux"
package: "rpm-tools"
version: "6.0.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/rpm-common"
---

# rpm-common(8)

Operations and options common to the main rpm(8) executables

## NAME

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

## SYNOPSIS

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

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

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

## DESCRIPTION

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

- •

  [**rpm**(8)](/rpm/8.md)

- •

  [**rpmdb**(8)](/rpmdb/8.md)

- •

  [**rpmkeys**(8)](/rpmkeys/8.md)

- •

  [**rpmbuild**(1)](/rpmbuild/1.md)

- •

  [**rpmsign**(1)](/rpmsign/1.md)

- •

  [**rpmspec**(1)](/rpmspec/1.md)

## 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

- **--color** \<*MODE*\>

  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)](/rpm-macros/7.md) expansion of *EXPR*.

- **--load** *FILE*

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

- **--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)](/chroot/2.md) 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.

- **--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**

  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

These options are deprecated. Use special purpose software such as [**curl**(1)](/curl/1.md) or [**wget**(1)](/wget/1.md) 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

**RPM\_CONFIGDIR**

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

## EXIT STATUS

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

## 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)](/rpm/8.md) and [**rpmdb**(8)](/rpmdb/8.md).

## FILES

### Database

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

### Temporary

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

## SEE ALSO

[**popt**(3)](/popt/3.md), [**rpm**(8)](/rpm/8.md) [**rpm-config**(5)](/rpm-config/5.md), [**rpm-rpmrc**(5)](/rpm-rpmrc/5.md), [**rpm-macros**(7)](/rpm-macros/7.md)
