Esta es la respuesta más exacta que encomtrarás dar, pero mírala detenidamente y analiza si se adapta a tu trabajo.
Solución:
Cuando instala software con make install
o sudo make install
, los diferentes archivos se colocan en diferentes directorios. Los ejecutables que proporcionan comandos que el usuario debe ejecutar normalmente van en un bin
directorio, las bibliotecas suelen ir en un lib
directorio, las páginas del manual suelen ir en un man
directorio, etc.
Cuando corres ./configure
, el --prefix
La opción le permite especificar dónde aquellos los directorios son. Se llama --prefix
porque te permite dar el prefix que aparece en las rutas a cada uno de los directorios donde se instalarán los archivos del programa o biblioteca que está creando. Más configure
soporte de scripts --prefix
, y omitirlo y simplemente ejecutar ./configure
es típicamente equivalente a ./configure --prefix=/usr/local
.
Para responder a esto de manera más completa, he reproducido dos secciones de mi respuesta a ¿Cómo instalar el archivo tar “globalmente”? (en Unix y Linux), que abordan esta pregunta específicamente:
Configurando tu construcción
Cuando tiene un código fuente que se compila ejecutando
./configure
ymake
, normalmente usarásmake install
(osudo make install
) para instalarlo. Esto copia archivos del directorio de compilación en la ubicación de instalación. Cuando lo que está instalando proporciona comandos ejecutables, esos ejecutables generalmente se copian en un directorio que se encuentra en$PATH
o que debería considerar agregar a
$PATH
.Aunque crear e instalar software a menudo es tan simple como ejecutar
./configure
,make
, algunas vecesmake check
omake test
, y luegomake install
osudo make install
, a veces querrá pasar opciones alconfigure
script para configurar la compilación. En particular, como dice pfnuesel, así es como se configura
donde el software se va a instalar. A pesar demake install
paso realmente instala el software, las ubicaciones donde se instalará todo se establecen normalmente en el
./configure
paso.La opción más común para esto es
--prefix
. El valor por defecto prefix, cuando no dicesconfigure
qué usar, por lo general/usr/local
. (Ocasionalmente, el código fuente de un programa o biblioteca toma por defecto algún otro prefix. Afortunadamente, esto es raro).Entonces
./configure
suele ser equivalente a./configure --prefix=/usr/local
. Para instalar software en su directorio personal, puede usar./configure --prefix=/home/galahad
(Si/home/galahad
es su directorio de inicio) o--prefix="$HOME"
. Entonces, por supuesto, aún debe compilar e instalar el software conmake
. Debo decir que no todo el software que se distribuye en forma de código fuente está construido de esta manera. Siempre debe buscar documentación dentro del archivo de código fuente extraído.Qué
--prefix
MedioCuando corres
./configure --prefix=directory
, está indicando que el software debe instalarse bajo la
directory
directorio. Pero esto rara vez, o nunca, coloca archivos sueltos endirectory
. En cambio, coloca archivos que sirven para diferentes propósitos en los diferentes subdirectorios dedirectory
. Si esos subdirectorios no existen, los crea.Los ejecutables suelen entrar
directory/bin
, aunque pueden entrardirectory/sbin
si se usan comúnmente para la administración del sistema o pueden ir (más raramente, en estos días) en
directory/games
si son juegos. Las bibliotecas entran
directory/lib
u otro directorio con un nombre similar como
directory/lib32
. Los archivos de encabezado entran
directory/include
. Las páginas del manual entran
directory/man
. Los archivos de datos utilizados por el software van
directory/share
.Eso es lo que significa para
directory
ser un prefix. Es el directorio principal que contiene las ubicaciones en las que se instalarán los diferentes archivos. Por tanto, aparece como un prefix en las rutas absolutas de la mayoría de los archivos y directorios creados al ejecutarmake install
osudo make install
.Hay algunas excepciones a esto. Los archivos de configuración de todo el sistema, que a veces se crean al instalar el software que los usará, aunque no siempre, generalmente van en
/etc
. Por lo general, esto no se ve afectado al especificar un prefix. Incluso si instala mucho software en/usr/local
, todavía usará principalmente
/etc
, y tu/usr/local/etc
El directorio probablemente no exista, estará vacío o contendrá muy pocos archivos.En muchos sistemas, puede encontrar más información sobre el diseño típico del sistema de archivos ejecutando
man hier
. Si está utilizando un sistema GNU / Linux, es posible que le interese el estándar de jerarquía del sistema de archivos.
Indica la ubicación de las cosas que se requieren para configurar el paquete o software actual.
Como en un caso simple, puede indicar la ubicación de las bibliotecas ssl:
--with-libssh2=/usr/local #used in configuring nagios
y también le dice qué paquetes no configurar, para hacer compilaciones adecuadas del programa de acuerdo con su sistema:
--disable-shared # used in configuring nagios
--disable-link-balancer # used in configuring Firehol
Estas son solo opciones adicionales para hacer una compilación adecuada para su sistema. Es lo que pienso. Corrígeme si se trata de otra cosa.
El --prefix=PREFIX
La opción instala archivos independientes de la arquitectura en PREFIX
. Cuando ejecutas un make install
comando, las bibliotecas se colocarán en el PREFIX/lib
directorio, ejecutables en el PREFIX/bin
directorio y así sucesivamente.
Si este argumento no se pasa al configure
comando entonces el valor predeterminado es /usr/local
.