Conceptos básicos

Hoy proliferan las distribuciones basadas en Debian, con su conocido sistema de paquetes .deb. Sin embargo, no es el único sistema de empaquetado disponible. De hecho, el LSB dice que cualquier distribución que quiera cumplir los estándares debe soportar paquetes RPM. Vamos a ver cómo se crea uno.

Usaremos Fedora siguiendo las instrucciones de su wiki.

Preparar el entorno

Se recomienda crear un usuario específicamente para crear los paquetes, de modo que no rompamos nada del nuestro. También necesitamos una selección básica de paquetes:

sudo yum install @development-tools @fedora-packager

Ya está listo lo que necesitamos. Ahora vamos a crear el entorno de construcción de paquetes:

rpmdev-setuptree

Ahora tenemos la carpeta ~/rpmbuild, en la que se encuentran algunas otras carpetas:

  • BUILD: Aquí es donde se construirá el paquete.
  • BUILDROOT: Aquí se realiza el simulacro de instalación. Se escribirán los ficheros que se supone que deben instalarse cuando el usuario final instala el paquete.
  • RPMS: Una vez construido, se colocarán aquí los ficheros RPM binarios (.rpm) resultantes, listos para instalar.
  • SRPMS: Si así lo indicamos, aquí se colocarán los ficheros RPM de fuentes (.src.rpm), ideales para hacer una versión revisada o actualizada del paquete.
  • SOURCES: Aquí hay que poner las fuentes originales (.tar.gz, normalmente) y los parches que haya que usar.
  • SPECS: Aquí se colocan los ficheros de especificaciones (.spec).

Con esto ya tenemos el entorno preparado. En el próximo capítulo aprenderemos cómo entender esos extraños ficheros spec.

Teoría de los ficheros SPEC

La magia de los RPM es que en un solo fichero SPEC se incluyen todas las instrucciones para construir un paquete. Eso sí, primero hay que entenderlo, y a veces no es fácil…