Creación de paquetes RPM
RPM es una abreviatura de Red Hat Package Manager, ó gestor de paquetes de Red Hat la famosa distribución de Linux, actualmente es usado por muchas distribuciones de Linux como Suse ó Mandriva. Las distribuciones más importantes tienen sus propios sistemas de distribución de paquetes, Ubuntu por ejemplo utiliza APT, pero casi todas admiten el formato RPM.
Los RPMs permite a cualquier usuario crear sus propios paquetes a partir del código fuente, de esta forma se facilita la instalación/desistalación y rastreo de todos ficheros que componen el paquete. También gestiona una base de datos de todos los paquetes donde podemos consultar los paquetes instalados y los ficheros que los componen.
Veamos un pequeño manual para la distribución de nuestros propios paquetes…
Para la creación de un paquete se necesita un fichero .spec el cual contiene los ficheros que va a contener el paquete y la forma de construirlos, así como donde se instalarán los binarios, estos son los campo de debe contener :
Cabecera :
-Summary: descripción del paquete (1 linea)
-Name : nombre del paquete rpm
-Version : número de versión del paquete rpm
-Release : número de publicación
-Icon : icono que utilizan programas de instalación de alto nivel
-Source : fichero/s fuente/s deben de estar en el directorio SOURCES.
Por ejemplo : Source0 : mipaquete-0.tar.gz
Source1 : mipaquete-1.tar.gz
-Patch : parches, deben estar en el directorio SOURCES.
Por ejemplo : Patch0 : mipaquete-0.patch
Patch1 : mipaquete-1.patch
-Copyright : modelo de copyright al que se acoge el paquete (GPL , etc… ).
-Buildroot : directorio que simulara el raíz para la instalación.
-Group : informa a un programa de instalación de alto nivel donde situar un paquete dentro de la jerarquía de rpm .
Campos :
%description : campo multilinea que proporciona descripción sobre los paquetes. Necesita una etiqueta de descripción por paquete.
%prep : Segunda sección del fichero spec, se utiliza para tener las fuentes listas para hacer un make (parches …). Tras prep podemos poner el nombre de un script para desempaquetar y parchear los fuentes, tenemos macros ya predefinida que hacen esto, son %setup y %patch.
%build : Comandos para construir/compilar los datos ya instalados en el directorio correcto
%install :Cualquier comando necesario para instalar (p.e. make install)
Guiones opcionales pre y post install/uninstall
%pre : guiones preinstalación
%post : guiones postinstalación
%preun : guiones predesistalación
%postun : guiones postdesistalación
(Para ejecutar ldconfig ó eliminar librerías compartidas)
%files : Listados de los ficheros binarios del paquete.
%doc : Se indican los ficheros de documentación del paquete que se desean que sean instalados en una instalación binaria. Pueden ir en una línea ó en una macro (Se graban en /usr/doc/#nombre-#versión-#publicación).
%config : Para señalar ficheros de configuración de un paquete.
%dir : Señala un único directorio como parte del paquete, si no se especifica esta macro todos los directorios nombrados se consideran parte del paquete.
%files -f <nombredelfichero> :Vemos la lista de ficheros contenida en un fichero situado en el directorio de las fuentes.
Construcción :
Se necesita un árbol de directorios de compilación, se puede hacer mediante /etc/rmprc, la mayoría de la gente solo utilizará /etc/src.
Se necesitan los siguientes directorios para crear un árbol de compilación (cuelgan de /usr/src/packages/) :
-BUILD : donde rpm lleva a cabo la compilación y el empaquetamiento.
-SOURCES: ficheros fuentes y parches
-SPECS : ficheros spec
-RPMS : donde rpm deja los paquetes binarios
-SRPMS : donde rpm deja los paquetes fuentes
Un ejemplo de fichero .spec sería el siguiente:
Summary: paquete de prueba
Name: mipaquete
Version: 0.1
Release: 1
Copyright: GPL
Group: Development/Tools
Source: mipaquete-0.1.tar.gz
%description
Mipaquete es un ejemplo.
%prep
%setup
%build
sh install.sh
make
%install
make install
%files
/opt/mipaquete/*
/usr/local/bin/mipaquete*
/usr/man/man7/mipaquete*
(Más información HOWTO RPM-Como.gz)
Una vez tenemos el fichero spec, grabamos el tarball (todos los ficheros fuentes empaquetados y comprimidos) y lo copiamos en /usr/src/packages/SOURCE y ejecutamos :
# rpm -ba nombredefichero.spec
Lo cual creará el paquete y nos dejará los archivos binarios en /usr/src/packages/RPMS/i386/ y en /usr/src/packages/SRPMS nos dejará las fuentes.
Algunos comandos utiles para el manejo de los paquetes RPM
1.- Instalar
# rpm -i nombre_paquete
– Realizar actualización, instala el paquete y borra todas las versiones anteriores
# rpm -U nombre_paquete
2.- Desinstalar
# rpm -e nombre_paquete
3.- Consultar los ficheros que contiene un paquete
#rpm -q -l nombre_paquete
3.- Consultar información relativa a un paquete (nombre, versión..)
# rpm -q -i nombre_paquete
4.- Ver los paquetes instalados actualmente
# rpm -q -a






23rd Septiembre 2007 a las 11:39 pm
[...] Si estás interesado en poder crearte tus propios RPM imprescindible leer este tutorial. [...]