stringtranslate.com

configurar script

Diagrama de flujo que incluye configure, autoconf y automake , tres herramientas del sistema de compilación GNU

Un script de configuración es un script ejecutable diseñado para ayudar a desarrollar un programa que se ejecutará en una gran cantidad de computadoras diferentes. Compara las bibliotecas de la computadora del usuario con las que necesita el programa antes de compilarlo a partir de su código fuente .

Como práctica habitual, todos los scripts de configuración se denominan configure. Por lo general, los scripts de configuración se escriben para el shell Bourne , pero pueden escribirse para su ejecución en cualquier shell deseado.

Uso

Obtener software directamente del código fuente es un procedimiento común en las computadoras Unix y generalmente implica los siguientes tres pasos: configurar el makefile , compilar el código y, finalmente, instalar el ejecutable en las ubicaciones estándar. Un script de configuración realiza el primero de estos pasos. El uso de scripts de configuración es un método automatizado de generar makefiles antes de la compilación para adaptar el software al sistema en el que se compilará y ejecutará el ejecutable. El software ejecutable final se obtiene más comúnmente ejecutando los siguientes comandos en un shell que actualmente apunta al directorio que contiene el código fuente:

./configurarhacerhacer  instalación

./configureEn lugar de simplemente configureindicarle al shell que el script está en el directorio actual, se debe escribir . Esto se debe a que, como medida de seguridad, las configuraciones de Unix no buscan ejecutables en el directorio actual. Por lo tanto, para ejecutar programas en ese directorio, se debe especificar explícitamente su ubicación. [1]

Al finalizar, configureimprime un informe en config.log. Al ejecutarlo, ./configure --helpse muestra una lista de argumentos de línea de comandos para habilitar o deshabilitar funciones adicionales, como:

./configure  --libs = "-lmpfr -lgmp"
./configure  --prefix = /inicio/usuario/local

La primera línea incluye las bibliotecas mpfry gmp. La segunda línea indica makeque se debe instalar la versión final en /home/user/local.

A menudo, se incluye un documento con instrucciones. Esto puede resultar útil si configurefalla. Este archivo suele llamarse INSTALL.

Generandoconfigure

Los desarrolladores de software simplifican el desafío del desarrollo de software multiplataforma mediante el uso de GNU Autotools . [2] Estos scripts consultan el sistema en el que se ejecutan para conocer la configuración del entorno, la arquitectura de la plataforma y la existencia y ubicación de las dependencias de compilación y tiempo de ejecución requeridas. Almacenan la información recopilada en configure.aco en el ahora obsoleto configure.inpara que se pueda leer configuredurante la fase de instalación.

Comprobación de dependencia

En un nuevo desarrollo, la comprobación de dependencias de bibliotecas se ha realizado en gran parte utilizando pkg-config a través de la macro m4 , PKG_CHECK_MODULES. Antes de que pkg-config ganara popularidad, se crearon macros m4 independientes para localizar archivos que se sabía que estaban incluidos en la distribución de las bibliotecas de las que dependían.

Historia

El primer programa que incluía un script de configuración fue rn, de Larry Wall, en 1984. El script se escribió a mano y producía un comentario jocoso al ejecutarse. Aún sobrevive como parte del sistema de compilación del programa trn . [3]

Desde entonces, ha crecido un ecosistema de programas para automatizar al máximo la creación de scripts de configuración, de los cuales el más común es el sistema GNU Autoconf .

Véase también

Referencias

  1. ^ "Compilación de software Linux a partir del código fuente". Motor de ayuda para Linux de Control-Escape . Consultado el 20 de noviembre de 2010 .
  2. ^ "Autoconf - Proyecto GNU - Free Software Foundation (FSF)". Sistema operativo GNU . Consultado el 20 de noviembre de 2010 .
  3. ^ "Configurar script de trn". GitHub . Consultado el 10 de diciembre de 2020 .