Esta pregunta, y la mayoría de las otras respuestas aquí, surgen de un malentendido sobre cómo se distribuyen los proyectos que utilizan el Sistema de compilación GNU (también conocido como Autotools). De hecho, en el caso de la biblioteca Erlang XMPP mencionada por el OP, el malentendido parece ser de parte de los desarrolladores.
Obteniendo el software de la manera correcta
Si todo lo que quiere hacer es compilar e instalar un proyecto lanzado con las herramientas automáticas GNU, entonces no debe verificarlo desde el sistema de control de código fuente . En su lugar, debe descargar la versión de origen empaquetada proporcionada por el desarrollador. Estos normalmente toman la forma de tarballs distribuidos en el sitio web del proyecto. Para proyectos que están alojados completamente en GitHub, Savannah o algún servicio de alojamiento similar, estos tarballs generalmente se encuentran detrás de un enlace etiquetado como "Descargar" o "Lanzamientos". Descomprime el paquete y pronuncia alguna variante del ./configure && make && sudo make install
encantamiento estándar . Eso es todo; no necesita invocar ninguna de las herramientas automáticas de GNU, y ni siquiera necesita tener las herramientas automáticas de GNU instaladas en su sistema.
La razón por la que usted, el usuario, no necesita las Autotools de GNU para compilar un proyecto empaquetado de Autotools es que el desarrollador ya ha utilizado los diversos programas de Autotools para generar un "tarball de distribución" que puede usarse para construir el software en cualquier Sistema tipo Unix. El tarball de distribución contiene un configure
script altamente portátil que escanea el entorno de compilación, busca dependencias y construye un Makefile
sistema personalizado para su sistema.
Entonces, ¿cuándo necesitas Autotools?
La única razón por la que debería instalar e invocar los Autogols de GNU usted mismo es si desea realizar un trabajo de desarrollo en un proyecto creado con Autotools. E incluso entonces, probablemente no necesitará las herramientas automáticas a menos que cambie las dependencias del proyecto. En ese caso, sería de hecho que tenga que revisar la fuente original, hacer los cambios apropiados a los Autotools específica archivos de entrada ( configure.ac
, Makefile.am
, etc.), y ejecutar las Autotools en ellos para generar un nuevo configure
archivo. Si desea publicar de forma independiente el paquete revisado, utilizaría el Makefile generado por Autotools para generar un nuevo tarball de distribución y luego publicaría ese tarball en algún lugar en línea.
El problema es que algunos desarrolladores hacen que su repositorio de origen esté disponible públicamente, pero no publican sus tarballs de distribución (o dificultan encontrar dónde se publican). Por ejemplo, en lugar de publicar sus tarballs de distribución como lanzamientos de GitHub , los lanzamientos de GitHub de la biblioteca Erlang XMPP son tarballs del repositorio de origen sin procesar. Esto hace que sea imposible compilar el proyecto sin los GNU Autotools, lo que anula el propósito de usar Autotools en primer lugar.
TL; resumen DR
Las herramientas automáticas GNU son algo que los desarrolladores usan para crear paquetes de código fuente portátiles para los usuarios. Los usuarios deben descargar y compilar desde estos paquetes fuente, no el código original del sistema de control fuente. Si los desarrolladores no proporcionan estos paquetes de origen, entonces no están utilizando Autotools correctamente, y deben ser golpeados suavemente con una trucha húmeda hasta que vean el error de sus formas.