En el post anterior mostramos cómo instalar software desde el código fuente. Durante el proceso, utilizamos los comandos configure
, make
, y make install
. En esta oportunidad explicaremos qué papel juega cada uno de ellos al compilar programas en Linux.
Compilar programas en Linux
En primer lugar, es importante asegurarnos de que contemos con todos los componentes para llevar a cabo la compilación. Es ahí que configure
entra en acción, cumpliendo tres propósitos fundamentales:
- Confirmar la disponibilidad de herramientas necesarias, entre las que se destaca un compilador de C (gcc por lo general).
- Permitirnos agregar opciones de configuración para el programa en cuestión.
- Generar el archivo Makefile (lista de tareas a llevar a cabo durante la compilación).
- Informar de errores, si los hubiere.
A continuación, make
lleva a cabo la compilación propiamente dicha utilizando el Makefile como guía y crea el ejecutable del programa. Finalmente, make install
copia este archivo binario y las librerías necesarias para su funcionamiento a las ubicaciones apropiadas del sistema.
Opciones de configuración
Por lo general, el ejecutable del programa se colocará en un directorio que forme parte de la variable PATH. Por otro lado, la documentación del software se moverá al directorio apropiado dentro de MANPATH. Es muy probable que las opciones de configuración permitan indicar explícitamente las ubicaciones de estos componentes (para nuestra conveniencia). Por ejemplo, en el caso de nginx que vimos anteriormente podemos utilizar las opciones --prefix
y --conf-path
para establecer el directorio de instalación y el que utilizaremos para almacenar los archivos de configuración, respectivamente.
Espero que este post les haya resultado útil. ¡Nos leemos en el próximo!
Te invitamos a conocer la propuesta completa de Carrera Linux Argentina para convertirte en un experto y completo sysadmin desde cero. En nuestro sitio web Aprender Linux podrás encontrar más detalles y contactarnos si te surgen preguntas o dudas. ¡Esperamos tu consulta!