Recompilar un programa a partir de las fuentes
Introducción
Puede darse el caso de que los paquetes RPM disponibles en Internet no pueden ser instalados en su servidor dedicado con la distribución de
OVH Release1 (basada en Red Hat 7.2).
Las razones son diversas pero la más corriente es que su sistema no satisface las dependencias necesarias para el paquete RPM que desea instalar.
En ese caso, usted tiene la posibilidad de recuperar el paquete
Source RPM (ou SRPM) correspondiente a la aplicación que desea instalar y compilar usted mismo un paquete RPM que podrá isntalar en sus sistema.
Estos paquetes son disponibles bien direcatamente en la página oficial de la aplicación que desea instalar, o bien en sitios web especializados como
RPMFind.
Preámbulos
Numerosas aplicaciones recientes necesitan una versión más actual del paquete
autoconf que la que se entrega con su servidor dedicado.
Por ello es conveniente que actualice este paquete con el que se entrega con la distribución Red Hat 8:
ftp://rpmfind.net/linux/redhat/8.0/en/os/i386/RedHat/RPMS/autoconf-2.53-8.noarch.rpm
Dado que la distribución de OVH se basa en Red Hat 7.2, es necesario forzar la instalación (parámetro --force) para que el paquete se instale correctamente:
# rpm -ivh --force autoconf-2.53-8.noarch.rpm
Compilación de un paquete RPM a partir de fuentes
En algunos casos el comando --force no es suficiente para hacer funcionar un programa en la distribución de OVH.
La única solución es la compilación de un paquete a partir de sus fuentes (SRPM o Source-RPM).
La obtención de un paquete RPM correspondiente a su sistema se desarrolla en 3 etapas:
- Recuperar el paquete SRPM
- Construir el paquete RPM (configuración de la aplicación para su sistema y posterior compilación)
- Instalar el paquete creado
Recuperar el paquete
Recomendamos encarecidamente que utilice el directorio
/home/ovh/src/soft para almacenar los paquetes SRPM que desee instalar.
Allí se encuentran ya todos los paquetes RPM ya utilizados por su sistema actual.
Construir el paquete
La construcción del paquete se ejecuta con el comando:
# rpm --rebuild paquete_fuente.src.rpm
Ejemplo:
Para recompilar MySQL 4.0.18:
# rpm --rebuild MySQL-4.0.18-0.src.rpm
Este comando descomprime las fuetes de la aplicación en el directorio
/usr/src/redhat/BUILD, aplica los parches necesarios y luego lanza la configuración, la compilación y finalmente la construcción del pqeute RPM.
La manera en la cual los parches deben aplicarse y se debe compilar la aplicación está descrita en el fichero de
especificación que se copia automáticamente en el directorio
/usr/src/redhat/SPECS
Casos particulares
En la mayoría de los casos, todo se compila automáticamente y no debe hacer nada más hasta la obtención del paquete RPM. Es posible que el comando se bloquee en la configuración, si ciertas librerías necesarias no han podido ser encontradas.
En este caso, debe editar manualmente el fichero de especificación para corregir el problema y luego reiniciar la compilación para que tenga en cuenta los cambios mediante el comando:
# rpm -bb fichero_especificación.spec
Ejemplo:
Para PostgreSQL:
# rpm -bb /usr/src/redhat/SPECS/postgresql.spec
Es también posible que no pueda recompilar un paquete a partir de sus fuentes porque ciertas dependencias faltan en su sistema.
Tomemos el ejemplo de que una aplicación necesita
Python v1.5. No cuenta con esa dependencia porque, por ejemplo, usted ha compilado manualmente
Python v2.3, ningún paquete de python está instalado en su sistema y la construcción del paquete lanza un problema de dependencias.
Puede forzar la compilación epserando que su propia versión de Python se detectará en el proceso de configuración, añadiendo la opción siguiente:
--nodeps
Ejemplo
Para MySQL 4.0.18:
# rpm --rebuild --nodeps MySQL-4.0.18-0.src.rpm
Instalación del paquete RPM
Todos los paquetes RPM creados mediante este método, se almacenan automáticamente en el directorio /usr/src/redhat/RPMS en donde se clasifican por su arquitectura.
En la mayoría de los casos, los paquetes que va a crear se encontrarán en el directorio /usr/src/redhat/RPMS/i386 pero algunos pueden emplazarse en /usr/src/redhat/RPMS/noarch
En el caso de MySQL, encontrará allí todos los paquetes, el principal y los opcionales. Puede proceder entonces a la instalación de la aplicación de la manera clásica.
[root@nsXXXXX soft]# ls /usr/src/redhat/RPMS/i386/MySQL-*
/usr/src/redhat/RPMS/i386/MySQL-bench-4.0.18-0.i386.rpm
/usr/src/redhat/RPMS/i386/MySQL-client-4.0.18-0.i386.rpm
/usr/src/redhat/RPMS/i386/MySQL-devel-4.0.18-0.i386.rpm
/usr/src/redhat/RPMS/i386/MySQL-embedded-4.0.18-0.i386.rpm
/usr/src/redhat/RPMS/i386/MySQL-Max-4.0.18-0.i386.rpm
/usr/src/redhat/RPMS/i386/MySQL-server-4.0.18-0.i386.rpm
/usr/src/redhat/RPMS/i386/MySQL-shared-4.0.18-0.i386.rpm
Más información
:
InstalarMRTGSys :: Instalación de MRTG-sys
:
ServidorApache :: Instalación del servidor Apache