Nexolinux
Sistemas Linux, servidores web, certificaciones, LPIC, Linux básico y profesional
Navigation
  • Home
  • Bash
  • LPIC
  • Noticias
  • Seguridad
  • Servicios
  • HowTo’s
You are here: Home › LPIC-2 › Bases de compilación e instalación

Bases de compilación e instalación

23 enero, 2013 | Filed under: LPIC-2, Nivel Avanzado and tagged with: codigo fuente, codigo fuente linux, compilacion, compilacion linux, compilar, compilar linux, compilar programa, install from source linux, Linux certification, linux training, lpic, servidor, servidores

En el LPI-1 se habla de las instalaciones de programas por RPM y DEB principalmente, pero no siempre el programa que queremos instalar está empaquetado o bien es más recomendable instalarlo desde el código fuente, o también denominado compilación.

La mayoría del software en Linux está disponible como código fuente y como código binario. el fuente se transforma en binario por un programa conocido como el compilador. El código binario está personalizado para un Sistema operativo en particular o un hardware. El código fuente necesita de herramientas de compilación y conocimientos para ponerlo en práctica.

Si no se tiene acceso a los paquetes binarios, necesitas compilarlo, para lo que necesitarás:

– Herramientas de desarrollo apropiadas instaladas en tu sistema, como el GCC (GNU Compiler Collection) escrito en C o C++

– Librerias de desarrollo apropiadas (header files) instaladas en el ordenador. Normalmente son instaladas por separado de los equivalentes binarios.

– Herramientas adicionales, como «tar» para descomprimir ficheros, pues todos vienen así. Generalmente vienen por defecto en el sistema.

Si descargamos un código fuente normalmente viene con documentación, algún README o LEEME con algunas notas a tener en cuenta para compilar.

Voy a tomar como ejemplo el artículo que publiqué aquí sobre Compilar Apache con mod_jk y mod_proxy

1 – Obtener y preparar el código fuente

Para obtener el código fuente del software, nos dirigimos a la página del autor o páginas conocidísimas sourceforge donde podemos encontrar de todo. Las páginas webs tienen paquetes para diferentes plataformas, en Linux tenemos bastantes que descomprimiremos con la utilidad Tar ( con extensiones tar.gz, tgz, ,tbz, tbz2, ó tar.bz2 ) Todos estos ficheros se denominan tarballs.

 # wget http://apache.rediris.es//httpd/httpd-2.2.23.tar.bz2

Luego extraemos el tarball y nos metemos en la carpeta:

nexolinux m3t4g4m3 # tar jxvf httpd-2.2.23.tar.bz2
nexolinux m3t4g4m3 # cd httpd-2.2.2

2- Leer la documentación

Haciendo un ls sobre la ruta del fichero que acabamos de extraer, hay ficheros que nos pueden dar información para el proceso, los más típicos son los siguientes:

COPYING – texto de licencia

CHANGELOG – Historial de cambios técnicos en el software.

NEWS – Otro historial de cambios menos técnico

README – Documentación General

INSTALL – Instrucciones para instalar el software

La mayoría del software requiere un procedimiento similar, pero no está completamente estandarizado.

 

3 – Compilando el software

Ahora es donde empiezan los problemas una vez leído y descomprimido el tarball.  La herramienta más utilizada para compilar es usando el ./configure que escaneará el sistema y ajustará un fichero llamado el Makefile que controla el proceso de compilación

El script configure admite parámetros que te permiten personalizar la configuración. Esto es una lista de los más comunes:

— help  –  Resumen de opciones

–quiet – Muestra menos mensajes si el script funciona correctamente.

–prefix=directory – toma como directorio de instalación el directorio señalado, por defecto lo haría en /usr/local

–eprefix=directory – El directorio de instalación para archivos dependientes de la arquitectura, por defecto lo haría en /usr/local

–enable-FEATURE  – Habilita una determinada característica específica del programa.

–disable-FEATURE – Deshabilita una determinada característica específica del programa.

–enable-debug=ARG – Selecciona el modo DEBUG, ARG puede tener de valores: yes, no y full, por defecto es no

 –with-PACKAGE[=ARG] – habilita soporte para una biblioteca en particular o herramienta externa, ARG por defecto es sí.

–without-PACKAGE – Deshabilita soporte para una libreria particular o herramienta externa.

 

nexolinux httpd-2.2.23 # ./configure --prefix=/opt/apache-2.2.23 --enable-mods-shared="proxy all" –with-mod_jk

Cuando ejecutamos el configure muestra una serie de líneas que resume lo que está ocurriendo. Comienzan con un «checking»  en ocasiones puede descubrir que hemos perdido algún componente sea header o de software:

 

4 – Compilando el código fuente.

Si hemos completado el ./configure sin errores, el siguiente paso es  «make» a partir de su ejecución podemos tardar desde segundos a horas dependiendo del software. Deberíamos estar atentos aunque sea a intervalos de tiempos a ver si observamos errores para interrumpirlo y empezar por el paso 3. Para lo cual es recomendable usar make clean antes de ejecutar otro configure con sus opciones, para limpiar todos los objetos previamente compilados y comenzar con una «limpia»

nexolinux httpd-2.2.23 # make

5- Instalando el software.

En este punto ya iriamos muy bien, y sólo falta hacer make install como usuario root, de lo contrario nos fallará y podemos pensar que es cuestión de recompilar. El programa binario se copiará en la ruta /usr/local/bin

Opciones comunes de make install.

-b or –backup  Crea una copia de cada fichero resultante.

-g GROUP or –group=GROUP  Cambia el grupo de los ficheros instalados a GROUP

-m MODE or –mode=MODE cambia los ficheros instalados a MODE

-o OWNER or –owner=OWNER  cambia el propietario de los ficheros instalados a OWNER

-s or –strip reduce el tamaño de los binarios, pero complica resolver fallos.

-T or –no-target-directory  Trata la localización destino como un fichero en lugar de un directorio

-v or –verbose  Muestra los nombres de los ficheros y directorios que se están copiando

nexolinux httpd-2.2.23 # make install

6- Desinstalando el software.

Muchos programas tienen este detalle también y no es de otra forma que con make uninstall ejecutándolo como root. Si no lo tuviera hay que borrar los ficheros manualmente.

Comparte esto:

  • Facebook
  • Twitter
  • LinkedIn

Me gusta esto:

Me gusta Cargando...

Deja un comentarioCancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Categorías.

  • Bases de datos
  • Bash & Comandos
  • HowTo
  • Linux General
  • LPIC
  • LPIC-2
  • Nivel Avanzado
  • Nivel Basico
  • Noticias
  • Seguridad
  • Servicios
  • Servidor Web

Entradas y Páginas Populares

  • Comando fuser, Localizamos procesos que usan un fichero.
    Comando fuser, Localizamos procesos que usan un fichero.
  • Ejemplos usos mount y umount
    Ejemplos usos mount y umount
  • Ficheros de usuarios /etc/passwd y /etc/shadow
    Ficheros de usuarios /etc/passwd y /etc/shadow
  • Instruccion READ en Bash
    Instruccion READ en Bash
  • ¿Cómo cifra linux las contraseñas?
    ¿Cómo cifra linux las contraseñas?
  • Proxy Squid, control de accesos ACL (II)
    Proxy Squid, control de accesos ACL (II)
  • 15 dispositivos que funcionan con Linux
    15 dispositivos que funcionan con Linux
  • fichero fstab
    fichero fstab
  • HowTo:Ejecutar comando como otro usuario.
    HowTo:Ejecutar comando como otro usuario.
  • Comandos más usados para gestionar Iptables
    Comandos más usados para gestionar Iptables

© 2025 Nexolinux

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrar publicidad relacionada con tus preferencias. cerrar Política de cookies
Privacidad y política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR
%d