domingo, 28 de octubre de 2012

Instalar programas desde las fuentes

Hola, hoy os enseñaré algo bastante interesante, como instalar un programa desde las fuentes en linux.

NOTA: la mayoría de programas de linux están escritos en C, así que la gran mayoría de veces que tengamos que instalar un programa desde las fuentes es casi seguro que será un programa escrito en C, por eso solo mostrare ejemplos de programas en C.

Empezaremos por algo simple, si tuviésemos un programa muy simple en el cual todo su código esta en un solo fichero sería bastante fácil instalarlo, solo tendríamos que lanzar el compilador C y posteriormente moverlo a la carpeta que quisiésemos, podríamos moverlo a /usr/bin para tenerlo siempre a mano.

Por ejemplo, si tuviésemos el siguiente programa hello.c:


#include <stdio.h>

main()

{
printf("Hello world\n");
}



para instalarlo podríamos hacerlo asi:


gcc hello.c -o hello

mv hello /usr/bin


Este es un ejemplo muy simple, en el que solo compilaríamos el único archivo de código que tiene el programa y posteriormente lo moveríamos a /usr/bin para tener acceso al programa desde cualquier directorio.

Normalmente los programas se suelen dividir en varios archivos de código fuente, ademas de que también suelen usar varias librerías de código. Para poder realizar todas las operaciones de compilación se suele usar un archivo llamado Makefile, en el cual están todas las instrucciones que se le deben pasar al compilador para poder compilar el programa de una manera ordenada.

Cuando descargamos un programa para instalarlo desde las fuentes normalmente se suele bajar un archivo con extensión ".tar.gz" esto quiere decir que el programa esta archivado y comprimido con tar y gzip, dentro de este archivo estará todo el código fuente del programa.

Lo primero que tenemos que hacer es extraer los archivos que hay dentro del archivo ".tar.gz" para ello usaremos tar (desde el shell) de la siguiente manera:


tar xvf programa.tar.gz


donde "programa.tar.gz" es el nombre completo del archivo que tengamos que extraer.

Una vez tengamos extraídos todos los archivos en muchos casos podemos encontrarnos archivos de texto plano en los cuales tenemos una serie de instrucciones para instalar el programa, es recomendable pararse un momento a leer estas instrucciones (estos archivos suelen tener nombres como README, INSTALL...etc)

Vale, en este momento ya tenemos nuestro programa con todos los archivos extraídos, ahora lo que tendríamos que hacer es ejecutar un archivo llamado configure, este archivo es un script encargado de realizar una comprobación de nuestro sistema para asegurarse de que tenemos todas las librerías y programas necesarios para llevar a cabo la compilación e instalación del programa, ademas configure se encarga de crear el archivo Makefile que he mencionado anteriormente, pero solo lo creara cuando se asegure de que tenemos todo lo necesario para realizar la instalación del programa, podemos ejecutar el script configure desde el shell usando:


./configure


Una vez ejecutado veremos en pantalla una serie de comprobaciones, tenemos que asegurarnos de que el programa finaliza la ejecución sin dar ningún error, en caso de que se nos muestre algún error tendremos que solucionarlo, configure nos indicara a que se debe el error, por lo general suelen ser errores indicando la falta de alguna librería, en este caso tendríamos que instalar dicha librería para poder continuar la instalación, una vez hayamos solucionado el error tendremos que ejecutar de nuevo configure para que nos certifique que no hay mas errores y nos cree el Makefile.

Una vez ejecutado el script configure de manera satisfactoria es hora de compilar el programa usando el Makefile, para ello haremos lo siguiente (desde el shell):


make


el programa make se encarga de buscar el archivo Makefile en nuestro directorio actual y de realizar las operaciones indicadas en el archivo. No os preocupéis si veis que la compilación dura mucho tiempo, en algunos programas un poco grandes es normal.

Una vez compilado el programa tendríamos que instalarlo, para ello lo haríamos con el siguiente comando (por lo general casi siempre se necesitan permisos de root, por eso se añade el sudo al principio):


sudo make install


Este ultimo comando no es realmente necesario, ya que el programa ya lo tenemos compilado y listo para funcionar en la carpeta en la cual lo hemos compilado, lo único que hace el comando make con el argumento install, es mover algunos archivos (como el binario ejecutable o algunos archivos de configuración) a algunas carpetas de nuestro sistema para que podamos ejecutar el programa desde cualquier sitio y no tengamos que ir estrictamente a la carpeta en la que lo compilamos.

De hecho hay algunos programas que carecen de la opción install, en este caso por lo general tendremos que cojer nosotros el binario ejecutable y moverlo manualmente a alguna carpeta como /bin o /usr/bin, que nos permitan la ejecución desde cualquier directorio del sistema


Resumiendo, lo único que necesitamos para instalar un programa desde las fuentes es:

-Extraer los archivos:

tar xvf <nombre_archivo>

-Comprobar que tenemos todo lo necesario:

./configure

-Compilar

make

-Instalar

sudo make install

Espero que os haya gustado este mini-tutorial, si tenéis alguna pregunta no dudéis en dejármela en los comentarios.

Saludos :D

No hay comentarios:

Publicar un comentario