Hola, leyendo por estos foros -por cierto hay algún que otro gurú que da gusto leerlo- me he fijado que el uso de la opción -PREFIX o --PREFIX es realmente importante, yo lo había visto escrito en algún que otro foro pero no le había prestado demasiada atención.
--prefix en minúsculas. Y si es importante. --prefix modifica prácticamente todos los directorios de destino del programa que estamos compilando:
Normalmente un programa instala sus ejecutables en --bindir las librerías en --libdir, las páginas del manual en --mandir, los datos en --datarootdir, etc, etc... pero todos estos parámetros por defecto se forman a partir de --prefix
Generalmente --prefix es por defecto /usr/local esto es así para que un paquete que compilamos nosotros, no entre en conflicto con otro que hemos instalado de la distribución, cuyo prefijo por defecto será /usr
Suponiendo que el prefijo por defecto es /usr/local y si no especificamos otra cosa bindir será /usr/local/bin; mandir /usr/local/man; libdir /usr/local/lib (puede ser /usr/local/lib64 dependiendo de la arquitectura); datarootdir será /usr/local/share. Pero si ponemos el prefix a /usr todos estos directorios será /usr/bin/, /usr/man, /usr/lib...
En resumen, el programa en sí, las bibliotecas, los datos de configuración, la documentación... se instalarán en un sitio distinto dependiendo del --prefix que pongamos. Por ello es importante, porque es importante que el lugar dónde se instalen los binarios esté en el $PATH, que el lugar dónde se instalen las bibliotecas esté en el /etc/ld.so.conf o que dónde van a parar las páginas man estén en el manpath, si no es posible que las cosas no funcionen como esperabamos. La solución puede ser incluir los /usr/local/* en sus correspondientes ficheros de configuración o variables para que se tengan en cuenta o bien pasar un --prefix=/usr pero ojo esto segundo es peligroso si lo que estamos compilando es un paquete que pueda entrar en conflicto con otro que ya tenemos instalado, porque al hacer el make install machacaremos ficheros que pertenecen a paquetes instalados en nuestra distribución y sin que ello sea advertido por las herramientas de instalación.
Personalmente y salvo ciertas excepciones, siempre uso --prefix=/usr en los paquetes que compilo pero cuando hago esto nunca uso make install para instalarlos. Me explico:
Existe un maravilloso programa que se llama checkinstall este programa simula el make install en un entorno chroot, con lo cual no instala nada, pero ve todo lo que se intenta instalar, y con todo ello hace un paquete .deb o .rpm. Luego si intentas instalar el paquete y entra en conflicto con algo te avisa. Además llevas el control de lo que tienes instalado en la base de datos del gestor de paquetes de tu sistema, con lo cual puedes desinstalarlo con las herramientas habituales. Porque aunque casi siempre puedas hacer un make uninstall, eso no funcionará si has borrado el directorio dónde has compilado o si ejecutaste otro ./configure con parámetros distintos. checkinstall es tu amigo, úsalo, seguro que está en los repositorios de tu distribución, pero si no....
http://www.asic-linux.com.mx/~izto/checkinstall/