En esta primera parte vamos a crear un sencillo rpm que va a contener solo archivos de fondo de pantalla ( wallpapers ) para gnome, voy a usar unos wallpapers de tatica para distribuirlos en formato rpm. La intención de este HowTo no es realizar algo demasiado técnico si no más bien que el lector aprenda usando casos de ejemplo y que pueda adaptar a sus necesidades y se familiarice con la forma de construcción de rpms de una forma sencilla, de forma tal, que si el usuario lo requiere y desea profundizar en el tema pueda comprender más fácil conceptos más complejos.
Un rpm es un meta archivo comprimido, es decir es un vulgar archivo comprimido como cualquier zip por ejemplo, con la única diferencia que contiene metadata que al ser leída por el programa rpm, este sabe donde va cada archivo que es extraído y así mismo le permite generar una base de datos con información acerca del paquete así como también que puede ejecutar instrucciones ( scripts ) para amoldar un paquete a un entorno ( pre y post instalación ) y por supuesto los paquetes pueden ser firmados con llaves públicas gpg para comprobar la autenticidad del paquete.
Un rpm contiene 3 cosas ( creo ):
- Un archivo .spec que es el archivo que contiene la información del paquete, de su compilación ( Si lo requiere ) y de como instalarlo.
- El código fuente de la aplicación.
- Los parches de la aplicación.
Para poder generar un rpm, debe tener instalado el paquete rpm-build:
yum install rpm-build
El paquete rpm-build genera al instalarse una estructura de directorios en /usr/src/redhat o /root/rpmbuild ( no me acuerdo ).
El archivo .spec que usaremos se llamará tatica-backgrounds.spec y tendrá el siguiente contenido:
Summary: tatica Desktop backgrounds packaged with the GNOME desktop
Name: tatica-backgrounds
Version: 1.0
Release: f10
License: GPLv3
Group: Applications/Multimedia
URL: http://www.tatica.org
BuildRoot: %{_tmppath}/%{name}-%{version}
BuildArch: noarch
BuildRequires: gettext
BuildRequires: perl(XML::Parser)
Source0: http://tatica.fedorapeople.org/pub/tatica-backgrounds/%{name}-%{version}.tar.bz2# for /usr/share/backgrounds
Requires: desktop-backgrounds-basic%description
The tatica-backgrounds package contains images and tiles
to use for your gnome desktop.%prep
%setup -q%build
%install
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/backgrounds/tatica/
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/gnome-background-properties/
%{__install} -D -m0755 *.png %{buildroot}%{_datadir}/backgrounds/tatica
%{__install} -D -m0755 *.xml %{buildroot}%{_datadir}/gnome-background-properties%clean
rm -rf $RPM_BUILD_ROOT%files
%defattr(-, root, root, 0755)
%{_datadir}/gnome-background-properties
%{_datadir}/backgrounds/tatica%changelog
* Wed Jul 15 2009 Edwind Richzendy Contreras Soto <[email protected]> – 1.0
– Initial build.
El archivo consta de varias secciones, la primera indica la información del paquete, el grupo a cual pertenece ( este dato no se puede inventar, los grupos están bien definidos ), la dirección del cóidigo fuente y los requerimientos para la construcción e instalación del rpm.
Luego viene la sección de compilación propia de paquete ( De ser necesario compilarlo ), seguido de una sección que indica como y en donde instalar el paquete y para finalizar el log de cambios ( un frecuente error es inventar la fecha, el sistema sabe que el dia 15 de Julio del 2009 es Miercoles o Wen del ingles, asi que si colocas por ejemplo Mon para el lunes dará error la construcción del paquete ).
En el contenido del .spec también podemos apreciar el uso de una especie de pseudo-código como por ejemplo %{__install}, esto es lo que se denomina macros de rpm.
El archivo lo colocamos en /root/rpmbuild/SPECS
Ahora el archivo fuente en mi caso lo coloco en /root/rpmbuild/SOURCES, el archivo fuente puede ser descargado desde ( el mismo .spec dice donde ):
http://tatica.fedorapeople.org/pub/tatica-backgrounds/
Y el archivo que descargaremos se llama tatica-backgrounds-1.0.tar.bz2
Ahora colocaremos el siguiente comando para generar el rpm:
rpmbuild -ba /root/rpmbuild/tatica-backgrounds.spec
El comando genera una salida bastante populosa, entre los últimos datos nos dice la ubicación de los rpm que se construyeron:
Escrito: /root/rpmbuild/SRPMS/tatica-backgrounds-1.0-f10.src.rpm
Escrito: /root/rpmbuild/RPMS/noarch/tatica-backgrounds-1.0-f10.noarch.rpm
El archivo .src.rpm es el rpm fuente que puede ser instalado y contiene el archivo .spec en caso de que se requiera compilar el paquete en una máquina diferente o se le quieran hacer algunas modificaciones, el otro es el rpm que usaremos para instalar en cualquier máquina y contiene los archivos listos para ser usados.
Si desea practicar por si mismo, descargue el archivo .src.rpm e instalelo:
rpm -ivh tatica-backgrounds-1.0-f10.src.rpm
Eso le dejará el archivo de fuentes y el .spec en los sitios adecuados, Si desea instalar el rpm, descarguelo desde la siguiente dirección:
http://richzendy.org/repo/fedora/10/noarch/RPMS/tatica-backgrounds-1.0-f10.src.rpm
nos vemos hasta otra parte de este HowTo, espero le sirva.