LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

rpmbuild

Build RPM packages from spec files

TLDR

Build binary and source packages
$ rpmbuild -ba path/to/spec_file
copy
Build binary package only
$ rpmbuild -bb path/to/spec_file
copy
Build source package only
$ rpmbuild -bs path/to/spec_file
copy
Build with custom macro definitions
$ rpmbuild -bb --define "version 1.0" path/to/spec_file
copy
Prepare sources only (unpack and patch)
$ rpmbuild -bp path/to/spec_file
copy
Build for specific architecture
$ rpmbuild -bb --target x86_64 path/to/spec_file
copy
Rebuild from an existing source package
$ rpmbuild --rebuild path/to/package.src.rpm
copy

SYNOPSIS

rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs|-br|-bd} [options] SPECFILE

DESCRIPTION

rpmbuild builds both binary and source software packages from spec files. A package consists of an archive of files and metadata used to install and erase the archive files. The tool processes spec files through multiple build stages.

PARAMETERS

-ba

Build binary and source packages
-bb
Build binary packages only
-bp
Unpack sources and apply patches only (%prep stage)
-bf
Configure the sources (%conf stage, equivalent to ./configure)
-bc
Compile sources (%build stage)
-bi
Install binaries into the build root and run %check
-bl
Verify that all files listed in %files exist
-bs
Build source package only
-br
Build source package with dynamic build dependency resolution
-bd
Check dynamic build dependencies and generate build requirements
-D, --define 'MACRO EXPR'
Define a macro with value
--target PLATFORM
Set build target architecture (e.g. `x86_64`, `aarch64`)
--buildroot DIRECTORY
Override the build root directory
--clean
Remove build tree after completion
--nobuild
Skip all build stages (spec file syntax check only)
--noprep
Skip the %prep stage
--noclean
Skip the %clean stage
--nocheck
Skip the %check stage
--nodeps
Do not verify build dependencies
--short-circuit
Skip directly to the specified stage (usable with -bc, -bi, -bb only)
--rebuild SOURCEPKG
Install the source package, build binary packages, then clean up
--recompile SOURCEPKG
Like --rebuild but stops after the install stage without creating binary packages
--rmsource
Remove source files after build
--rmspec
Remove spec file after build
--with OPTION
Enable a conditional build option defined in the spec file
--without OPTION
Disable a conditional build option defined in the spec file

CONFIGURATION

~/.rpmmacros

User-level macro definitions overriding system defaults, commonly used to set %_topdir for the build tree location.
/etc/rpm/macros
System-wide macro overrides for all users on the machine.
/usr/lib/rpm/macros
Default RPM macro definitions shipped with the rpm package, defining build paths, compiler flags, and platform defaults.

CAVEATS

The spec file defines how to build a package. Macros are defined in /usr/lib/rpm/macros, /etc/rpm/macros, and ~/.rpmmacros. Build dependencies must be installed before building unless --nodeps is used.

HISTORY

rpmbuild is part of the RPM (RPM Package Manager) system, originally developed by Red Hat for managing software packages on Linux systems.

SEE ALSO

rpm(8), rpmspec(8), rpmsign(8), mock(1)

Copied to clipboard
Kai