# Instalación de RPM para usuarios nóveles.

El formato rpm fue creado e introducido por primera vez por redhat (fedora en la actualidad) y ha sido también implementado por otras distribuciones como: Mandrake (Actualmente Mandriva), Suse, PeanutLinux y muchas otras. Cada una de estas distribuciones ha creado un programa específico para instalar los rpms como es el caso de gurpmi en mandrake y yast en Suse. En este manual nos basaremos en el uso de rpm en la línea de comandos por ser siempre igual en todas las distribuciones que hacen uso de paquetes rpm.
El aspecto de un programa en formato rpm es el siguiente: gftp-2.0.18-7.i586.rpm gftp es el nombre del programa, los números indican la versión del programa, el número 586 ( 586 es válido para Pentium II, Pentium III, Pentium IV, Athlon II, Athlon III, Athlon IV, Celeron, etc) hace referencia al tipo de procesador para el cual ha sido compilado y el .rpm como ya sabemos es la extensión que informa del formato del fichero.
A la hora de instalar rpms necesitamos que éstos sean específicos para nuestra distribución (aunque muchos se pueden instalar de otras distribuciones y versiones, pero en este manual nos dedicaremos a seguir la línea de la distribución que estemos usando, con el tiempo y la practica, aprenderemos a instalar esos otros rpms) de modo que nos descargaremos los rpms siguiendo esta línea.
Un sitio excelente para descargar rpms se encuentra en http://rpm.pbone.net aquí podemos configurar la página para que cuando hagamos las búsquedas nos muestre solo paquetes de nuestra distribución (aunque muchas veces también nos muestre rpms de otras). Para hacer la búsqueda basta con poner el nombre del rpm, por ejemplo gftp en el recuadro de búsqueda. Hemos de ser cuidadosos a la hora de bajar los rpms, el simple hecho de bajarnos uno que esté en fase de desarrollo podría requerir una serie de dependencias distintas de las que tenemos instaladas y arruinarnos la instalación. Voy a poner unos ejemplos, supongamos que hacemos la búsqueda y nos muestra entre otros los siguientes resultados:
SuSE 9.X ftp.suse.com/pub/suse/i386/supplementary/GNOME/update_for_9.1/applications/gftp-2.0.18-7.i586.rpm
SuSE 9.X ftp.suse.com/pub/suse/i386/supplementary/GNOME/update_for_9.2/applications/gftp-2.0.18-7.i586.rpm
SuSE 9.X ftp.suse.com/pub/suse/i386/supplementary/GNOME/update_for_9.3/applications/gftp-2.0.18-7.i586.rpm
SuSE 9.X ftp.suse.com/pub/suse/i386/supplementary/GNOME/update_for_9.3/applications/devel/gftp-2.0.18-7.i586.rpm
SuSE 9.X ftp.suse.com/pub/suse/i386/supplementary/GNOME/update_for_9.3/applications/gftp-2.0.18-7.i586.src.rpm
En este ejemplo asumimos que estamos usando la distribución Suse 9.3 por lo cual si nos fijamos en los directorios de descarga, podemos ver que se hace referencia a la distribución, pero una de las líneas contiene la palabra devel en su localización de descarga y la otra no, y además la otra línea contiene la palabra src en el nombre del rpm ¿ Cuál de ellos debemos bajar ? Bajaremos siempre el rpm que no tenga la palabra devel en la línea de ubicación del fichero y el que no contenga la palabra src en el nombre del fichero rpm.
Ahora que ya sabemos que rpm descargar vamos a instalarlo, abrimos una terminal cualquiera como por ejemplo xterm, konsole, rxvt etc, nos dirigimos hacia donde se encuentre el rpm que hayamos descargado, en mi caso sería cd /work/rpms y hacemos lo siguiente:
Ponemos el comando su para invocar al administrador y pulsamos enter, introducimos la contraseña del administrador, (ya que éste es el único que puede instalar programas) e introducimos el comando que nos va a instalar el rpm: rpm -ivh gftp-2.0.18-7.i586.rpm Una vez terminada la operación tecleamos el comando exit para cerrar la sesión de administración que hemos abierto con el comando su.
Ahora si todo ha ido bien, nuestro rpm se habrá instalado y ya podemos ejecutarlo desde la terminal tecleando gftp o bien desde el menú si éste ha sido instalado en el menú de aplicaciones del gestor de ventanas que estemos usando.
DEPENDENCIAS
La mayoría de programas en linux se forman a base de unir otros programas ya escritos anteriormente, para no reescribir lo mismo de nuevo, de modo que la mayoría de rpms requieren de una serie de dependencias para poder instalarse. Cuando un rpm nos pide unas dependencias tenemos la obligación de instalarlas una por una hasta completar el ciclo para lo cual las iremos descargando e instalando una por una tal y como hemos aprendido. Algunas veces el problema, sobre todo a los novatos, se presenta cuando algunas de estas dependencias no se instala sin la otra, por ejemplo. tenemos un rpm que se llama divx4linux-2.2.3.i586.rpm pero para instalarse requiere de, libdivx4linux-2.2.3.i586.rpm, pero al ir a instalar a libdivx4linux-2.2.3.i586.rpm, nos dice que requiere de divx4linux-2.2.3.i586.rpm y así entramos en un bucle sin fin. La solución a este tipo de bucle es forzar la instalación de uno de los dos rpms de modo que el otro encuentre su dependencia instalada. En este caso el comando sería: rpm -ivh --force libdivx4linux-2.2.3.i586.rpm y una vez instalado, el otro se instalaría también al encontrar su única dependencia ya instalada. Algunos rpms viejos pueden pedir como dependencia una librería antigua y por su número de versión no encontrarla en nuestro sistema como por ejemplo libpng.so.2 en nuestro caso estamos usando libpng.so.3 en este caso podemos hacer un pequeño apaño para comprobar si funciona de la siguiente manera:
Abrimos una terminal, escribimos el comando whereis libpng.so para que nos muestre dónde está instalada la librería png en este caso la terminal nos muestra: libpng: /usr/lib/libpng.so /usr/lib/libpng12.a /usr/lib/libpng12.so /usr/lib/libpng.a /usr/include/libpng /usr/share/man/man3/libpng.3.gz de modo que volvemos a invocar al administrador con el comando su y nos dirigimos hasta ahí con cd /usr/lib/ y ahora haremos un enlace simbólico a libpng.so de la siguiente manera: ln -s libpng.so libpng.so.2 ahora ya podemos instalar el rpm forzandolo con la línea rpm -ivh -–force --nodeps nombreprograma.rpm Si todo ha ido bien, podremos disfrutar de ese rpm viejo que antes no quería instalarse.