[TIP] Sobre Compilar Programas En Linux

por | 4 mayo, 2009

Hola, el otro día supe algo que nos puede ser muy útil  cuando compilamos programas con autotools, es decir, con configure, make, make install. El tip es cómo podemos instalar el programa de forma local en el directorio en el que lo estamos compilando, sin necesidad de instalarlo en el root. De esa forma podemos probarlo antes de instalarlo, o si estamos queriendo empaquetar mel programa podremos ver cómo quedarán situados todos los directorios y ficheros del programa cuando lo instalemos en nuestro Linux o lo empaquetemos.

Para el empaquetado es algo útil, sobretodo si es un multipaquete o empaquetamos rpms. Pronto explicaré en el blog como debianizar multipaquetes.

Bien, supongamos que estamos compilando un programa, previamente hacemos:

./configure –prefix=/usr

make

Y ahora haríamos make install, pero en vez de eso lo vamos a instalar de forma local, crearemos un directorio temporal llamado tmp (o como queramos llamarlo) y lo instalaremos dentro de tmp sin permisos de superusuario, con estos dos comandos:

mkdir tmp

make install DESTDIR=`pwd`/tmp

Ya está, ahora si hacemos un tree del tmp obtendremos el listado completo de los directorios y ficheros del programa que se instalarán  en nuestro pc en /usr cuando hagamos sudo make install ( o con su). Por ejemplo, para el programa mp3wrap me ha quedado así:

`– usr
|– bin
|   `– mp3wrap
`– man
`– man1
`– mp3wrap.1

4 directories, 2 files

Si queremos ejecutarlo para probarlo, accedemos a /tmp/usr/bin y ejecutamos el programa, en el ejemplo sería ./mp3wrap.

Y eso es todo, espero os haya sido útil

Fuente-> Myri

Saludos