Cómo - compilar programas - con ejemplo

Ver el tema anterior Ver el tema siguiente Ir abajo

Cómo - compilar programas - con ejemplo

Mensaje por megabyte el Sáb Dic 27, 2008 3:08 pm

La mayoria de los nuevos usuarios al querer instalar programas suelen cometer el error de querer compilar cuando la mayoria de las veces los programas a instalar se encuentran empaquetados y listos para usarse.

En otras ocasiones no hay remedio y es necesario compilar, ya sea porque no hay paquetes, o se quiere compilar una versión nueva, o se quiere aprender.

En mandriva como en la mayoria de las distros enfocadas al usuario de escritorio, no se incluyen las herramientas para la compilación, o mejor dicho no se instalan al momento de instalar la distro, pero todas las distros incluyen en su paqueteria lo necesario para compilar.

En el caso de mandriva 2008 spring, se han creado metapaquetes para dichas herramientas, antes no existian tales paquetes, que no son mas que paquetes vacios con una lista de lo que deben instalar, como es el caso de un compilador de C (gcc), make, Librerias varias (Libc++, zlib glib, etc)

Suponiendo que instalaron su sistema como viene predeterminado, sin haber modificado paquetes, lo primero que debemos hacer es configurar los repositorios, despues

abrimos rpmdrake (buscar en menu, o en consola) en el menú debajo del titulo, seleccionamos metapaquetes nos movemos a la sección desarrollo-> C -> y seleccionamos Task-c-devel, nos dira que seleccionemos una serie de opciones, basta con elegir la primera opción, despues nos indicara los paquetes a instalar y aceptamos, la lista es la siguiente:




-autoconf-2.61-7mdv2008.1.noarch
- automake-1.10.1-1mdv2008.1.noarch
- bison-2.3-5mdv2008.1.i586
- byacc-1.9-22mdv2008.1.i586
- cdialog-1.1-1.20070704.1mdv2008.1.i586
- ctags-5.7-1mdv2008.1.i586
- ed-0.9-1mdv2008.1.i586
- flex-2.5.33-3mdv2008.1.i586
- gcc-4.2.3-6mnb1.i586
- glib-gettextize-2.16.2-1mdv2008.1.i586
- glibc-devel-2.7-12mnb1.i586
- kernel-headers-2.6.24-6mnb1.i586
- libglib2.0-devel-2.16.2-1mdv2008.1.i586
- libncurses-devel-5.6-1.20071222.1mdv2008.1.i586
- libnetpbm10-10.34-10mdv2008.1.i586
- libpcre-devel-7.6-2mdv2008.1.i586
- libslang-devel-2.1.3-1mdv2008.1.i586
- libstdc++-devel-4.2.3-6mnb1.i586
- libtool-1.5.24-1mdv2008.1.i586
- libtool-base-1.5.24-1mdv2008.1.i586
- m4-1.4.10-3mdv2008.1.i586
- make-3.81-2mdv2008.1.i586
- manbo-mandriva-files-gcc-4.2.3-6mnb1.i586
- multiarch-utils-1.0.9-5mdv2008.1.noarch
- netpbm-10.34-10mdv2008.1.i586
- patch-2.5.9-5mdv2008.1.i586
- sam2p-0.44.14-1mdv2008.1.i586
- tetex-3.0-47mdv2008.1.i586
- texinfo-4.11-2mdv2008.1.i586
- zlib1-devel-1.2.3-9mdv2008.1.i586




lo que esta en negritas suele ser lo mas básico, en anteriores versiones de mandriva habia que buscar esos paquetes y elegirlos, en esta ocasión con un metapaquete, se fácilita en mucho para los mas noveles usuarios o quienes por primera vez compilaran algo.

Esos no son todos los paquetes que necesitaremos durante una compilación, todo dependera de los requisitos del programa a compilar, pero si observaron, existen otros metapaquetes de desarrollo, como por ejemplo cuando se necesiten compilar algo para kde, o gnome, o xfce, ya saben donde o que buscar e instalar, en esta ocasion de momento nos basta con ese metapaquete.

una vez instalado, necesitaremos tambien y esto es opcional aunque muy recomendado, instalar el paquete checkinstall

checkinstall nos servira para crear un paquete rpm, con el que podremos instalar y desinstalar lo compilado, tan fácil como los paquetes proporcionados por mandriva, si no usaramos checkinstall, la desinstalación del programa de no gustarnos o no satisfacer nuestras necesidades tendria que hacerse a mano, o con suerte si el código fuente incluye un script de desinstalación (la mayoria no lo incluye), aunque para usarlo no debemos de haber borrado todos los archivos generados durante la compilaciőn (lo que suele ocupar espacio), en cambio con checkinstall, una vez compilado, podemos borrar todos los archivos generados y quedarnos solo con el rpm, yo les recomiendo lo instalen.


ahora si, con las herramientas necesarias, compilaremos nuestro primer programa en mandriva, sera uno facil y sin tantos requisitos, se llama gtkhash, es una utilidad en modo gráfico para obtener las sumas de verificación md5sum y sha1, es muy útil para verificar las ISO, o cualquier otro archivo a descargar o a subir para que otros lo descarguen, aunque en mandriva ya hay una utileria similar, pues siempre es bueno conocer otras opciones, espero que pronto sea añadido a los repositorios


1. descargamos gtkhash de aqui

2. lo descomprimimos


3. entramos a la carpeta generada



4. abrimos y leemos el archivo readme, si no saben ingles no se preocupen algun dia aprenderan, aqui lo importante es que se acostumbre a abrir ese archivo, ya que ahi indica muchas cosas importantes sobre el programa a compilar, entre ellas las dependencias necesarias


5. si leimos y entendimos el archivo readme, en este caso indica que necesitamos lo siguiente


Dependencies:
mhash
GTK+ 2
libglade 2


no lo instalaremos en este momento, proseguiremos con


6. abrimos una consola en esa carpeta, si usan konqueror presionen F4, si es nautilus busquen en el menu, si es xfce/thunar con el boton secundario del raton.



7. en consola y como usuario normal escribiremos

./configure

mostrara una serie de lineas, y al final lo siguiente



si no lo han visto es la linea que dice please install mhash, que traducido del ingles al arameo y del arameo al griego y del griego al español, dice mas o menos instala mhash o estaras dando vueltas y vueltas buscando como compilarme

ahora ven porque es importante leer los readme, si desde el paso 5 hubieramos hecho caso y buscado en nuestro sistema si teniamos instalado mhash o instalado antes del configure, nos abriamos ahorrado este par de parrafos, bueno ahora lo que sigue cuando tenemos un error de este tipo es buscar e instalar esa dependencia

8. usare urpmi, pero pueden usar rpmdrake

urpmq -y mhash

me muestra 3 paquetes, instalare el que dice devel, siempre que compilemos algo, deberemos instalar los paquetes cuyo nombre incluya devel

urpmi libmhash



instalara dos paquetes, la libreria y el de uso, es recomendable que usen una consola o terminal que trabaje con pestañas o tabs, konsole, Terminal y supongo que la consola de gnome tienen dicha opción, asi pueden tener una pestaña donde compilen y si les marca error, cambiar a una pestaña en sesión root para buscar e instalar con urpmi, o usar rpmdrake eso ya es su elección, pero para mi es mas fácil seguir en consola que cambiar a rpmdrake, es mucho mas rápido

9. de nuevo ejecutamos el ./configure y ahora si termina con... un nuevo error, ¿pero que paso?, pues eso recordemos que el readme indica 3 dependencias, y el configure al buscar las dependencias y toparse con la primera ahi termina, le falto revisar gtk y glade, asi que esta vez instalaremos los dos de una sola vez

urpmq -y libglade

urpmq -y gtk+ <- en este caso lo que necesitamos es una libreria y se llama libgtk+...

urpmi libglade2.0_0-devel libgtk+2.0_0-devel




de nuevo, por eso es importante leer el readme, nos evita todo esto de configure, buscar - instalar - configure...

si recuerdan, en los metapaquetes existen unos para gtk, qt, etc como esta aplicación utiliza gtk, lo más lógico quizá habria sido instalar el metapaquete gtk, pero entonces no habrian aprendido como espero esten aprendiendo en este mini pero en verdad mini (si le quitan toda la paja) tutorial de compilación

ahora que todas las dependencias estan instaladas, crucen los dedos y repitan el ./configure



listo, pasamos la prueba del añejo y del configure, ¿ya terminamos? ¿ya puedo usar mi gtkhash? pues no, no hemos terminado y seguro ya se cansaron de leer como yo de escribir, ahora sigue la compilación

¿que, entonces que hicimos?

todo lo anterior fue solo el tener las herramientas a mano, y serciorarnos con el configure que asi sea, la compilación viene con

10. en consola escribimos

make



si termino sin errores, ya tenemos nuestro binario listo, ya solo falta instalarlo en el sistema, ese es el útlimo paso

11. en consola y esto es como root, escribimos

make install

terminando ese comando, ya podemos buscarlo en el menu, si es que se incluye en el menu, o ejecutarlo en consola como gtkhash


¿y el checkinstall cuando?

si han puesto atención a este mini pero en verdad mini tutorial, recordaran un tal checkinstall, si lo instalaron en su sistema deberan sustituir el make install del paso once por checkinstall

deberan seguir las instruciones, basicamente es escribir una descripción, vale copiar la descripción del readme

"GtkHash is a GTK+ utility for computing message digests or checksums using the mhash library."




y al final obtendran su rpm, por último lo instalamos, el checkinstall les indicara donde quedo guardado y como instalar (ver imagen) y lo ejecutamos en consola como usuario normal gtkhash, y listo aparece el dichoso programita








y para terminar, pueden borrar la carpeta generada al descomprimir y en donde trabajaron, ya que ahora cuentan con un rpm que podran desinstalar usando urpme o rpmdrake


Eso es todo, ahora que ya saben como compilar, no lo hagan, y den gracias a los mantenedores de paquetes de cualquier distro, que donan su tiempo y ciclos de CPU empaquetando gigas y gigas de paquetes para hacerles la vida mas fácil (y ustedes perdiendo el tiempo compilando ), en esta ocasión compilar esta utileria no llevo mucho tiempo, pero compilar programas y proyectos grandes como gnome o kde si que llevan tiempo


Saludos y espero que hayan aprendido algo

megabyte
Mandrivero Culto
Mandrivero Culto

Mensajes : 148
Puntos : 218
Reconocimientos : 36
Fecha de inscripción : 27/12/2008
Localización : México

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.