Instalar módulos RPM en su Servidor Dedicado




Introduction




La distribución RedHat implementa su propio fromato de paquetes para simplificar la gestión de las aplicaciones en su servidor dedicado. Los paquetes RPM permiten instalar, suprimir, modificar y listar los programas que necesita y poder así ajustar la configuración a sus necesidades.



Este formato está respaldado y se utiliza por otras distribuciones como Mandrake. En internet encontrará varios sitios web que hacen las veces de repertorios para las diferentes distribuciones. Uno de los más conocidos y más utilizados es RPMFind1. Para instalar directamente un paquete sobre su servidor puede seleccionar la versión i386 para RedHat 7.3



Desgraciadamente, a medida que van apareciendo nuevas versiones del sistema operativo RedHat en el mercado, los paquetes se realizan para versiones más avanzadas y cada vez menos para la versión 7.3. Si necesita instalar un programa que no se encuentra disponible para la versión 7.3, debe buscar en los paquetes distribuidos para todas las últimas distribuciones. Evidentemente en la mayoría de los casos, la compatibilidad con versiones anteriores, y por tanto con la 7.3, no está asegurada. La única solución que queda si no consigue instalar un programa con una versión más moderna del RPM, es recompilar usted mismo el RPM a partir de las fuentes con el fin de que corresponda al sistema instalado en su servidor dedicado. Los paquetes especiales existentes a tal efecto se llaman Sources RPM (Fuentes RPM) y su extensión es .src.rpm




Attention: ¡¡¡Algunos paquetes no deben NUNCA actualizarse!!! Por ejemplo, todos los paquetes relativos al núcleo ("kernel") deben conservar el estado por defecto, bajo riesgo de malfuncionamiento del servidor. Igualmente se desaconseja no utilizar NUNCA la utilidad "up2date" por la misma razón.




La instalación de un paquete RPM necesita respetar las dependencias. Para instalar una aplicación, necesitará instalar tantos RPM como indique la tabla de dependecias. En ciertos casos, el paquete depende de aplicaciones que han sido compiladas manualmente por OVH. El caso más general es el de OpenSSL. En este caso, la única solución es la de recompilar el RPM a partir de las fuentes, si la instalación falla.



Un ejemplo típico del error que obtendrá si intenta instalar un paquete RPM que necesita OpenSSL:



error: failed dependencies:

libcrypto.so.2 is needed by .....

libssl.so.2 is needed by .....





Comandos básicos de RPM






Su servidor se sirve con ciertas aplicaciones pre-instaladas. Los RPM utilizados son almacenados en la carpeta /home/ovh/src/soft/. Puede descargar los nuevos paquetes en esta carpeta. La instalacación y la eliminación de paquetes se debe hacer SIEMPRE en root





Mostrar los paquetes instalados




El comando rpm -qa permite listar los paquetes ya instalados. Para buscar un paquete en particular, puede utilizar el comando rpm -qa | grep paquet



Por ejemplo, para los paquetes instalados relativos a perl:



root@julien soft# rpm -qa | grep perl

perl-5.6.0-17

groff-perl-1.17.2-7.0.2

perl-File-MMagic-1.06-2

perl-DBI-1.18-1

openssl-perl-0.9.6l-1





Installar un paquete


Un paquete RPM se installa con el commando rpm -i paquet.

Para una instalación detallada, es preferible utilizar la opción -ivh



Por ejemplo para el paquete bind:



rpm -ivh bind-9.2.1-0.7x.i386.rpm







Eliminar un paquete


El comando rpm -e nom_du_paquet permite de eliminar un paquete.

Atención

No hay que añadir la extensión, sino sólamente el nombre del paquete, si la estensión RPM.

Generalmente, se comienza por listar el paquete instalado antes de desinstalarlo, para asegurarse de que el paquete está en nuestro sistema.



Por ejemplo, para los paquetes relativos a python:



root@julien soft# rpm -qa | grep python

python-1.5.2-38

python-devel-1.5.2-38

root@julien soft# rpm -e python-devel-1.5.2-38 python-1.5.2-38





Algunas opciones


--test: Esta opción sirve para comprobar si la instalación de un paquete es posible. Se utiliza en conjunción con la opción --install ou -i

El comando no realiza la instalación del paquete, símplemente informa si la instalación es o no posible.

Por ejemplo:

rpm --test --install bind-9.2.1-0.7x.i386.rpm



--list: Esta opción es útil para listar el contenido de un paquete ya instalado. Se utiliza para encontrar dónde se ha realizado la instalación de un binario o una biblioteca. Esta opción se utiliza conjuntamente con la opción --query o -q

Por ejemplo:

rpm -ql python-1.5.2-38

rpm -query --list python-1.5.2-38



--file: Esta opción permite encontrar para qué paquete ha sido instalado un fichero. Esto es útil para conocer qué paquete es necesario actualizar.

La opción se utiliza en conjunción con --query o -q

Par exemple:

rpm -qf /bin/ls

rpm --query --file /bin/ls





--nodeps: Esta opción puede usarse para instalar un paquete sin respetar las dependencias. Por ejemplo, un pquete que necesite OpenSSL, puede instalarse sin que éste esté instalado. Dado que OVH tiene su propia versión de OpenSSL, podemos considerar que el paquete funcionará a pesar de que la dependencia no se satisface. En este caso, esta opción permitirá la instalación y el funcionamiento sigue estando asegurado.



Por ejemplo para libuser:

rpm --ivh --nodeps libuser-0.50.2-1.i386.rpm





--force: Esta opción puede ser útil para forzar la instalación de un paquete sin satisfacer las dependencias.

Puede ser necesaria para la actualización de un paquete crítico. Si la antigua versión no puede ser eliminada por la cantidad de paquetes que dependen de ella, puede forzar la instalación de la nueva versión con esta opción.

Por ejemplo, para autoconf:

rpm --ivh --force autoconf-2.53-8.noarch.rpm





Más información




Cuando hay que compilar el mismo RPM a partir de las fuentes.

Algunos ejemplos de compilación.