Saltar al contenido

Que hace –prefix hacer exactamente cuando se usa en ./configure?

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
y make, normalmente usarás make install (o sudo 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 veces make check o make test, y luego make install o sudo make install, a veces querrá pasar opciones al configure 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 de make 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 dices configure 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 con make. 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 Medio

Cuando corres ./configure --prefix=directory, está indicando que el software debe instalarse bajo la
directory directorio. Pero esto rara vez, o nunca, coloca archivos sueltos en directory. En cambio, coloca archivos que sirven para diferentes propósitos en los diferentes subdirectorios de directory. Si esos subdirectorios no existen, los crea.

Los ejecutables suelen entrar directory/bin, aunque pueden entrar directory/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 ejecutar make install
o sudo 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 installcomando, 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.

Calificaciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *