COMPILANDO E INSTALANDO SOFTWARE DESDE LAS FUENTES.

SECCION 1. TIPS DEL TUTORIAL

Deberia de tomar este tutorial?
Necesito Experiencia?

Si eres relativamente nuevo en Linux, o algun otro Unix o sistema operativo
tipo-Unix, y te gustaria aprender como compilar e instalar programas de codigo
abierto desde el codigo fuente original, entonces este tutorial es para ti. En
el, aprenderas como compilar la mayoria de fuentes Unix. Los pasos para
desempaquetar, inspeccionar, configurar, compilar e instalar seran cubiertos
en detalle.

Si eres un usuario de Unix intermedio, y solo rara vez compilas programas desde
las fuentes originales, encontraras en este tutorial un buen curso para
refrescar.

CONTACTO

Para preguntas tecnicas acerca de el contenido de este tutorial, contactar al
autor, Daniel Robbins, en [email protected].

Daniel reside en Albuquerque, Nuevo Mexico. El es el Presidente/CEO de Gentoo
Technologies, Inc. El arquitecto en jefe de El Projecto Gentoo, y un autor
contribuidor de varios libros publicados por MacMillan: Caldera OpenLinux
Unleashed. SUSE Linux Unleashed, y Samba Unleashed. Daniel ha estado envuelto
con las computadoras desde el segundo grado, cuando fue expuesto por primera
ves a el lenguaje de programacion Logo asi como tambien a una dosis
potencialmente peligrosa de Pac Man. Esto probablemente explica el porque ha
servido como Artista Grafico Lider en SONY Electronic Publishing/Psygnosis.
Daniel disfruta gastando el tiempo con su esposa, Mary, y su nuevo hijo,
Hadssah.

SECCION 2. PRIMEROS PASOS

INTRODUCCION.

Digamos que encuentras una aplicacion en particular que te gustaria instalar en
tu sistema. Quizas necesitas correr una version reciente de este programa. O
quizas esta aplicacion en particular solo esta disponible en la forma de
fuentes, o necesitas habilitar ciertas caracteristicas de el programa que no
estan habilitadas por default en el RPM.

Cualquiera que sea la razon, sea solo por necesidad porque quieres compilar
el programa desde sus fuentes, este tutorial te mostrara como.

DESCARGA

Tu primer paso sera localizar y descargar las fuentes que necesitaras para
compilar. Probablement esten en un solo archivo con finalizacion .tar.gz,
.tar.Z, .tar.bz2, o .tgz en la extension. Prosigamos y descarguemos el archivo
con tu navegador favorito o programa ftp. Si el programa tiene una pagina Web,
Este sera un buen momento para visitarlo y familiarizarse con la
documentacion de instalacion que pueda estar disponible.

El programa que vas a instalar puede depender de la existencia de cualquier
numero de programas existentes que pueden o no estar actualmente instalados en
tu sistema. Si sabes con seguridad que el programa depende de programas o
bibliotecas que no estan instaladas, primero necesitaras tener estos programas
instalados (ya sea de un paquete binario como RPM o tambien compilandolos desde
sus fuentes). Entonces, estaras en una gran posicion para tener
satisfactoriamente las fuentes instaladas.

DESEMPAQUETADO.

Desempaquetar el archivo de las fuentes es relativamente facil. Si el nombre de
el archivo finaliza con .tar.gz, .tar.Z, seras capaz de desempaquetar el archivo
tecleando:

$ tar zxvf nombredearchivo.tar.gz
(x es para extraer, z es para la decompresion con gzip, v es para ver en modo
informativo (imprime los archivos que estan siendo extraidos), y f significa
que el nombre del archivo aparecera despues de la linea de comandos).

Casi siempre "todos los tarballs de fuentes" crearan un directorio principal
que contiene todas las fuentes del programa. De esta manera, cuando
desempaquetes el archivo, tu directorio actual no sera estropeado con tantos
archivos - en lugar de esto, todos los archivos estaran organizados y no te
pasara tal cosa.

LISTADO DE ARCHIVOS

Ahora y siempre, podras encontrarte con archivos que, cuando es descomprimido,
crea toneladas de archivos en el directorio actual de trabajo. Cuando la mayoria
de tarballs no son creados de esta manera, lo cual es bien sabido que puede
pasar. Si quieres verificar que tu tarball en particular fue puesto en
conjunto correctamente y crea un directorio principal que contiene las fuentes,
puedes ver su contenido tecleando:

$ tar tzvf nombredearchivo.tar.gz | more
(t es para listar en modo texto el archivo, ninguna extraccion ocurre.)

Si no hay un directorio en comun listado en el lado izquierdo de el listado del
archivo, deberas de crear un nuevo directorio. Mover el tarball dentro de el,
entrar al directorio, y solo entonces extraer el tarball. De otra menera,
encontraras un desorden!.

DESEMPAQUETAR ARCHIVOS COMPRIMIDOS CON BZIP2

Es posible que tu archivo este en el formato .tar.bz2. Archivos con esta
extension han sido comprimidos con bzip2. Bzip2 generalmente comprime
significativamente mejor que gzip -- consume menos memoria que gzip cuando esta
corriendo. Para computadoras modernas, esto no es un problema. Por lo cual
puedes esperar que bzip2 se convierta mas y mas popular conforme pasa el tiempo.

Ya que bzip2 ha ganado popularidad, algunas distribuciones vienen con versiones
de tar que han sido parchadas para pasar las opciones "y" o "i" las cuales
informaran a tar que el archivo esta en el formato bzip2 y necesita ser
automaticamente descomprimido con el programa "bzip2".  Para ver si tienes una
version parchada de tar, intenta teclando:

$ tar tyvf archivo.tar.bz2 | more
ó

$ tar tivf archivo.tar.bz2 | more
Si ninguno de estos comandos trabaja (y tar se queja de un argumento invalido),
todavia hay una esperanza, sigue leyendo.

BZIP2 PIPELINES

Asi que, tu version de tar no reconoce estos accesos directos para bzip2 -- que
se puede hacer? Afortunadamente, Hay una manera facil de extraer un tarball
bzip2 que trabajara en casi todos los sistemas Unix, aun si el sistema en
cuestion tiene una version non-GNU de tar. Para extraer un archivo bzip2,
puedes usar una redireccion.

$ cat archivo.tar.bz2 | bzip2 -d | tar tvf - | most
La redireccion anterior mostrara el contenido de el archivo.tar.bz2

$ cat archivo.tar.bz2 | bzip2 -d | tar xvf -
La redireccion anterior extraera el contenidod de el archivo.tar.bz2

CONTINUACION DE BZIP2 PIPELINES

En los dos ejemplos previos, creamos una redireccion Unix estandar. El caracter
de barra vertical le dice al shell "redireccionar" la salida de el comando de
el lado izquierdo de la barra a la entrada de el comando a la derecha de la
barra.

El comando "cat" tira el contenido de el archivo.tar.bz2 a la salida estandar.
Estos datos son redireccionados a la entrada estandar de bzip2. Entonces, bzip2
lee los datos entrantes, y tira los datos descomprimidos a la salida estandar.
La salida estandar de bzip2 es redireccionada a tar. Puesto que tar es llamado
con la opcion "f -", tar sabe leer los datos de la entrada estandar, en lugar
de el disco. Entonces, tar o muestra el contenido de el archivo o la extrae,
dependiendo de como fue llamado.

NO HAY BZIP2!

Si usaste el metodo de redireccion (pipeline)  para tratar de extraer el
contenido de tu archivo y tu sistema se quejo de que bzip2 no puedo ser
encontrado, es posible que bzip2 no esta instalado en tu sistema. Puedes
descargar las fuentes de bzip2 de http://sourceware.cygnus.com/bzip2. Despues
de instalar las fuentes de bzip2 (siguiendo este tutorial), enconteces seras
capaz de desempaquetar e instalar la aplicacioin que querias instalar en primer
lugar.

SECCION 3. INSPECCION Y CONFIGURACION

INSPECCIONANDO LAS FUENTES

Una vez que has desempaquetado las fuetnes, queras entrar al directorio
desempaquetado y checar algunas cosas. Siempre es una buena idea localizar
cualquier documentacion relacionada a la instalacion. Tipicamente, esta
informacion puede ser encontrada en un archivo README o INSTALL localizado en
el directorio principal. Adicionalmente, busca archivos README.plataforma o
INSTALL.plataforma, donde plataforma es el nombre de tu sistema operativo en
particular.

CONFIGURACION

Muchas fuentes modernas contienen un script "configure" en el directorio
principal de las fuentes. Este script esta especificamente diseñado para
configurar las fuentes y asi puedan ser compiladas perfectamente en tu sistema.
Cuando corre, el script configure prueba el sistema, determina sus
posiblidades, y crea archivos "makefile" que contienen instrucciones para
construir e instalar las fuentes en tu sistema.

El script configure siempre es llamado "configure". Si encuentras uno en el
directorio principal de las fuentes, queras usarlo para configurar las fuentes
para la compilacion. Si no encuentras un script "configure", entonces las
fuentes probablemente vienen con un archivo "Makefile" estandar que ha sido
diseñado para trabajar en una variedad de sistemas -- esto significa que puedes
brincar los siguientes pasos de la configuracion, y resumir el tutorial cuando
empezamos a hablar acerca de "make".

USANDO CONFIGURE

Antes de correr el script configure, es una buena idea familiarizarse con el.
Tecleando "./configure --help", puedes ver la diferentes opciones de
configuracion que estan disponibles para el programa. Muchas de las opciones,
especificamente aquellas listadas al principio, son opciones estandar que
seran encontradas casi en cualquier script configure. las opciones listadas
cercas de el final son, a menudo relacionadas en particular al paquete que vas a
compilar.
Da un vistaso a ellas y anota aquellas que te gustaria habilitar o desabilitar.

LA OPCION --prefix

La mayoria  de scripts configure basados en GNU autoconf tienen una opcion
"--prefix" la cual te permite controlar donde sera instalado el programa. De
manera predeterminada, la mayoria de las fuentes se instalan en el prefijo
"/usr/local" -- esto significa que los binarios terminaran en /usr/local/bin,
las paginas del manual en /usr/local/man, etc. Esto es normalmente lo que uno
quiere -- /usr/local es comunmente usado para almacenar programas que instalas a
mano.

USANDO --prefix

Si quisieras instalar las fuenes en cualquier otro lugar, digamos en /usr,
entonces queras parar la opcion "--prefix=/usr" a configure. Igualmente, podrias
decirle a configure instalar en tu arbol de /opt, usando la opcion
"--prefix=/opt.

TIEMPO PARA CONFIGURAR

Una vez que has echado un vistaso a las diferentes opciones de configure y
determinado cuales quieres usar, es tiempo de correr configure. Por favor nota
que es posible que no necesitaras incluir ningun comando cuando corres
configure -- En la mayoria de situaciones, los valores predeterminados
trabajaran (pero no seran exactamente lo que quieres).

CONTINUACION de TIEMPO PARA CONFIGURAR

Para correr configure, teclea:

$ ./configure <opciones>
Esto puede parecerse a:

$ ./configure
ó

$ ./configure --prefix=/usr --with-threads

Todo depende de el paquete en particular que vas a configurar. Cuando corres
configure, tardar un minuto o 2 en detercatar caracteristicas particulares o
las herramientas disponibles en tu sistema, imprimiendo el resultado de sus
diferents configuraciones mientras es ejecutado.

CONFIG.CACHE

Una vez que el proceso de configuracion ha finalizado, el script configure
almacena todos los datos de la configuracion en un archivo llamado
"config.cache". Este archivo reside en el mismo directorio en el que esta el
script configure. Si alguna vez necesitas correr "./configure" de nuevo despues
de que has actualizado la configuracion de tu sistem, asegurate que correr
"rm config.cache" primero; de otra manera, configure simplemente usara las
viejas configuraciones sin rechecar tu sistema.

EXAMEN DEL PROGRESO

Veamos que tan bien estas poniendo atencin :) Verdadero o falso: cuando llamas
a "./configure", siempre debes de especificar la opcion --prefix.

A. Verdadero
B. Falso


(La respuesta correcta es "B, Falso")

SECCION 4. COMPILACION E INSTALACION

CONFIGURE Y MAKEFILES

Despues de que la configuracion finaliza, es tiempo de compiar las fuentes en
un programa ejecutable. Un programa llamado "make" es usado para realizar este
paso. Si el paquete de software contenia un script "configure", entonces cuando
lo corriste, "configure" creo unas cosas llamadas "Makefiles" que son
personalizaciones especificas para tu sistema. Estos archivos le diran al
programa make como construir las fuentes e instalar el resultado.

INTRODUCCION A MAKEFILE

Los archivos Makefile son tipicamente llamados "makefile" o "Makefile".
Normalmente habra un makefile en cada directorio que contenga archivos de
fuentes, incluyendo el directorio principal del programa. Make trabaja
averiguando cuales partes del programa necesitan ser compiladas, y en cual
orden. El desarrollador del programa crea Makefiles que contienen instrucciones
(officialmente llamadas reglas (rules)) para ciertos destinos, como el programa
que quieres instalar.

INVOCANDO A MAKE

Invocar a make es facil, solo teclea "make" en el directorio actual. El programa
make automaticamnete buscara y leera un makefile llamado "makefile" o "Makefile"
en el directorio actual. Si tecleas "make" por si solo, construira el destino
predeterminado. Los desarrolladores normalmente configuran sus makefiles de
manera que el destino predeterminado compila todas las fuentes:

$ make
Algunos makefiles no tendran un destino predeterminado, y tendras que
teclearlos para iniciar la compilacion:

$ make all
Despues de teclear ono de estos comandos, tu computadora tardara varios minutos
compilando el programa en codigo objeto. Asumiendo que termina sin errores,
estaras listo para instalar el progama compilado en tu sistema.

INSTALACION

Despues de que el programa esta compilado, hay un importante paso mas -- la
instalacion.
Aunque el programa esta compilado, no esta listo para usarse -- todos sus
componentes necesitan ser copiados a una localizacion correcta en tu sistema de
archivos. Por ejemplo, todos los binarios necesitan ser copiados a
/usr/local/bin, y todas las paginas del manual necesitan ser instaladas dentro
de /usr/local/man, etc.

Antes de que puedas instalar el programa, necesitaras convertirte en root. Esto
es tipicamente hecho ya sea logueandote como root en una terminal aparte, o
tecleando "su", en este punto se te preguntara la contraseña de root. Despues de
teclearla, tendras privilegios de root hasta que salgas de la sesion del shell
actual tecleando "exit" o control-D. si ya eres root, estas listo para
continuar.

MAKE INSTATALL

Instalar las fuentes es facil, En el directorio principal de las fuentes,
simplemente teclea:

# make install
Tecleando "make install" causara que el proceso de instalacion inicie -- los
archivos y directorios seran copiados al arbol /usr/local. Dependiendo de el
tamaño del programa, esto puede tomar desde varios segundos hasta varios
minutos.

Ademas, "make install" se asegurara de que los archivos instalados tengan los
dueños y permisos correctos. Despues de que "make install" completa
satisfactoriamente, el programa esta instalado!.

SECCION 5. POST-INSTALACION Y RESOLUCION DE PROBLEMAS

UNA VEZ INSTALADO

Ahora que el programa esta instalado, que sigue? Ejecutarlo, por supuesto! si
no estas tan familiarizado en como usar el programa que acabas de instalar,
tendras que leer las paginas del manual de programa tecleando:

$ man nombredelprograma
Tu programa puede requerir algunos pasos de configuracion adicionales,
dependiendo de el tipo que sea. Por ejemplo, si instalaste un servidor Web,
tendras que configurarlo para que inicie automaticamente cuando el sistema
arranca. Puede que tambien necesites configurar un archivo de configuracion
para el servidor Web -- por ejemplo para configurar el soporte CGI.

MAS INFORMACION

Algunos programas no incluyen paginas de manual, pero en su lugar incluyen otra
documentacion. Estos programas normalmente incluyen pagina de manual basica
"stub", referenciando a los usuarios a la documentacion informtiva. Para ver si
tu programa instalo algun documento informativo, teclea el siguiente comando:

$ info nombredelprograma
Si alguna documentacion fue disponible, sera mostrada. Si ningun documento fue
disponible, "info" pudeo haber encontrado algo mas cercano a lo que estabas
buscando. Esto puede no ser de ayuda para ti, asi que asegurate de bucar en el
titulo de la documentacion antes de leerlo.

TARAN!

Ahora que has instalado completamente un programa en particular desde sus
fuentes, puedes ejecutarlo. Para iniciar el programa, teclea:

$ nombredelprograma
Felicitaciones!

POSIBLES PROBLEMAS

Es muy posible que "configure" o "make", o aun "make install" aborten con algun
codigo de error. Esta seccion esta dedicada para ayudarte a corregir algunos
problemas comunes.

BIBLIOTECAS PERDIDAS

Ahora y siempre, puede que experimentes un problema cuando "configure" estalla
porque no tienes cierta biblioteca instalada. Para continuar el proceso de
construccion, necesitaras poner temporalmente el programa actual de
configuracion en espera y rastrear la fuente de las bibliotecas.

Si estas usando un sistema de paquetes como RPM, queras revisar si hay un RPM
dispinible de las bibliotecas necesarias. Si instalaste la libreria de un
paquete binario o desde las fuentes es una preferencia personal -- cualquiera
deberia de trabajar. Una vez que la biblioteca esta instalada, asegurate de
teclear "ldconfig" como root (bajo linux) de manera que el sistema pueda
detectar la nueva libreria instalada.

Entonces, es tiempo de regresarse a el programa original. Si estallo durante
"configure" corre configure de nuevo. Si estallo durando "make" teclea "make"
de nuevo.

OTROS PROBLEMAS

Algunas veces, te encontraras con algun tipo de error que simplemente no sabes
como solucionarlo. Segun tu expericiena con Unix/Linux crece, seras capaz de
diagnosticar mas y mas las condiciones cripticas de los errores.

Algunas veces, los errores ocurren porque instalaste un compilador tan viejo (o
posiblemente uno tan nuevo!) Otras veces, el problema que tienes es en realidad
una falla de los desarrolladores, quienes no han anticipado que el programa
corra en un sistema como el tuyo -- o cometiste un error tipografico.

CONTINUACION de OTROS PROBLEMAS

Para problemas como estos, usa tu mejor juicio para determinar a donde ir por
ayuda. Si este es tu primer intento de compilar un programa desde las fuentes,
puede ser un buen momento para seleccionar otro programa "mas facil" de
compilar. Una vez  que obtengas un programa mas facil de compilar, ya tendras
la experiencia necesaria para arreglar el problema original. Como vayas
aprendiendo mas acerca de como trabaja Unix, estaras mas cerca de el punto en
donde realmente puedas "truquear" Makefiles y las fuentes para compilar!

SECCION 6. WRAPUP

TUS COMENTARIOS

Por favor dejanos saber si este tutorial fue de ayuda para ti y como podriamos
hacerlo mejor. Tambien nos gustaria escuchar acerca de otros temas para
tutoriales los cuales te gustaria ver cubiertos.
Gracias!

Traduccion por: Jorge Armando Medina
email: jmedina[At]@tuxjm[dOt]net
Sitio Web: http://www.tuxjm.net

Visita la pagina del Grupo de Usuarios Linux Tijuana en:
http://www.linuxtj.org
Hosted by www.Geocities.ws

1