Jueves, Enero 19, 2006

Organizando librearías propias o compiladas

Personalmente no me gusta nada instalar librerías con el típico:

./configure; make; make install

Ya que de esta forma todos los programas/librerías acaban juntos en /usr/local mezclados y es un mareo cuando quieres actualizar, o quitarlos. Además necesitas ser root de la máquina para hacerlo, cosa que no siempre es posible

La solución es relativamente sencilla, compilar con :

 ./configure --prefix=/home/miUsuario/proyectos/nombre_libreria; make; make install 

De esta forma el programa/librería se instalará en tu home, en un directorio común “proyectos” y con un directorio para ella sola “nombre_libreria”. Para que todo funcione sólo hace falta un detalle más, ajustar las rutas para que el ld(linker) y el bash encuentren tanto las librerías como los binarios añadiendo estas lineas al .bashrc

EXT_DIR=$HOME/proyectos
[ -d $EXT_DIR ] && EXT_LIBS=$(find $EXT_DIR -maxdepth 2 -type d -iname "lib")
[ -d $EXT_DIR ] && EXT_BIN=$(find $EXT_DIR -maxdepth 2 -type d -iname "bin")
for i in $EXT_LIBS; do
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$i
done
for i in $EXT_BIN; do
    export PATH=$PATH:$i
done

¿Fácil no?, si alguien se pierde que haga uso de los comentarios que para eso están :D

posteado por PpluX @ 4:26 pm tags:Programación, linux/unix  

5 Comentarios »

  1. Cojonudo!

    Comentario por kraptor — Enero 27, 2006 @ 3:24 pm

  2. muy útil. yo estoy bastante pez en cuanto a programación de shell se refiere y esto me viene muy bien, ya que yo también detesto instalar todos los programas en el mismo directorio, ya sea en el hosting compartido o en el de casa
    también lo que hago es instalarlo con el nombre de versión del programa/librería y luego crear un enlace simbólico a este directorio para que los programas puedan apuntar siempre a la última versión de manera fácil. por ej:

    ./configure --prefix=/usr/local/subversion-1.2.3
    make
    make install
    ln -s /usr/local/subversion-1.2.3 /usr/local/subversion

    Comentario por bmsv — Febrero 17, 2006 @ 10:30 am

  3. Bueno… tal vez no sea lo mismo… pero existe un paquetito para Debian llamado STOW que maneja todos los ficheros que metes a la distro sin estar en paquetes oficiales, como por ejemplo las librerias que instalamos con “make && make install”. Permite instalar/desinstalar estos files/librerias de una forma mas elegante y limpia. Mas info: http://www.gnu.org/software/stow/

    Una vez que te acostumbras a Stow es difícil no usarlo…

    Taluego y felicidades por la page

    Comentario por Toby — Marzo 27, 2006 @ 5:19 pm

  4. Genial eso del Stow!!! prometo probarlo.

    Muchas gracias por el link.

    Comentario por PpluX — Marzo 27, 2006 @ 5:33 pm

  5. [...] Para compilar, y además actualizar, OSG fácilmente,aquí os dejo un script. Requiere el uso de stow, y tener las dependencias necesarias para compilar OSG. Por cierto, no recuerdo en concreto qué paquetes se necesitaban para compilar OSG en una ubuntu normalita, si alguien se acuerda actualizaré el script para que haga un check antes de ponerse a compilar [...]

    Pingback por Sopa de ganso » Archivo del weblog » Script para compilar OpenSceneGraph — Agosto 5, 2006 @ 5:57 pm

Suscripción RSS a los comentarios de la entrada. URI para TrackBack.

Deja un comentario

Gestionado con WordPress