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