Para crear un paquete RPM usted necesitará crear un archivo de texto ".spec" que suministre la información acerca del software que será empaquetado. Luego usted podrá ejecutar el comando "rpmbuild" sobre dicho archivo spec lo que provocará ejecutar una serie de pasos para producir sus paquetes.

Normalmente usted deberá colocar sus fuentes originales (prístinas), archivos tales como .tar.gz provistos por los desarrolladores originales, en "~/rpmbuild/SOURCES". Usted deberá colocar su archivo .spec en "~/rpmbuild/SPECS" y nombrarlo "''NOMBRE''.spec" donde ''NOMBRE'' es el nombre (vase) del paquete. Para crear todos los paquetes, tanto binario como fuente, usted deberá cambiarse al directorio "~/rpmbuild/SPECS" y ejecutar:

 rpmbuild -ba ''NOMBRE''.spec

rpmbuild invocado de esta manera leerá el archivo .spec e intentará ejecutar las siguientes, en ese orden (los nombres que comienzan con % so macros predefinidos y que luego se comentarán, los directorios sobre los que se actúa son listados):

Etapa Lee Escribe Acción
%prep %_sourcedir %_builddir Se leen la fuentes y parche en el directorio fuente %_sourcedir (usualmente ~/rpmbuild/SOURCES). Se desempaca las fuentes al subdirectorio bajo el directorio de construcción %_builddir (usualmente ~/rpmbuild/BUILD/) y se aplican los parches.
%build %_builddir %_builddir Se compilan los fuentes localizados en el directorio de construcción %_builddir (usualmente ~/rpmbuild/BUILD/). Esto se hace comunmente implementando alguna variación de "./configure ; make".
%check %_builddir %_builddir Verifica que el software funciona correctamente. Esto es usualmente implementado ejecutando alguna variación de "make test". Muchos paquetes no implementan esta etapa.
%install %_builddir %_buildrootdir Se leen los archivos en el directorio de construcción %_builddir (usualmente ~/rpmbuild/BUILD/) y se escribe en el directorio raíz de construcción %_buildrootdir (usualmente ~/rpmbuild/BUILDROOT). Los archivos que son escritos son los que se suponen que sean instalados cuando el paquete binario sea instalado por el usuario final. Esté al tanto de la terminología algo extraña, el "directorio raíz de construcción" no es lo mismo que el "directorio de construcción". Esta etapa usualmente se implementa ejecutando "make install".
bin %_buildrootdir %_rpmdir Se leen los archivos bajo el directorio raíz de construcción %_buildrootdir (usualmente ~/rpmbuild/BUILDROOT/) para crear los paquetes binarios RPM en el directorio RPM %_rpmdir (usualmente ~/rpmbuild/RPMS/). Dentro del directorio RPM hay un directorio para cada arquitectura y un directorio "noarch" para los paquetes a los cuales no les aplica la arquitectura. Los archivos RPM son los paquetes para que los usuarios instalen.
src %_sourcedir %_srcrpmdir Esto crea un paquete fuente RPM (.src.rpm) dentro del directorio fuente RPM %_srcrpmdir (usualmente ~/rpmbuild/SRPMS). Estos archivos son necesarios para revisar y actualizar los paquetes.

Como puede notar, algunos directorios tienen propósitos específicos en rpmbuild. Estos son:

Nombre del macro Nombre Usualmente Propósito
%_specdir Directorio especificaciones ~/rpmbuild/SPECS Archivos de especificaciones RPM (.spec).
%_sourcedir Directorio fuente ~/rpmbuild/SOURCES Paquete fuente prístina (e.g., tarballs) y parches.
%_builddir Directorio de construcción ~/rpmbuild/BUILD Archivos fuente son desempacados y compilados en un subdirectorio bajo este directorio.
%_buildrootdir Directorio raíz de construcción ~/rpmbuild/BUILDROOT Los archivos son instalados bajo este directorio durante la etapa %install .
%_rpmdir Directorio binario RPM ~/rpmbuild/RPMS Los binarios RPM son creados y almacenados bajo este directorio.
%_srcrpmdir Directorio fuente RPM ~/rpmbuild/SRPMS Los fuente RPM son creados y almacenados bajo este directorio.

Si falla alguna etapa, deberá revisar la salida para ver por qué falló, y deberá cambiar el archivo .spec (u otra entrada) en la medida de lo necesario.