|
Buscar |
Recompilar un programa a partir de las fuentesPuede 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. 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 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 : InstalarMRTGSys :: Instalación de MRTG-sys : ServidorApache :: Instalación del servidor Apache |