Esta es la primera vez que intento compilar e instalar cualquier cosa en una máquina Linux. Obtuve la última versión de https://github.com/processone/exmpp a través de git y leí las instrucciones que dicen:
2. Construir e instalar
Exmpp usa los Autotools. Por lo tanto, el proceso es bastante común:
$ ./configure $ make $ sudo make install
después del tipo ./configure
me sale el error
No se puede encontrar install-sh, install.sh o shtool en ac-aux
Google fue de poca o ninguna ayuda. No estoy seguro de lo que se supone que debo hacer. Cualquier ayuda sería muy apreciada
Bueno, probé la respuesta de sebastian_k y no funcionó para mí (se
./configure
estrelló a mitad de camino con un error extremadamente extraño).Sin embargo, lo que funcionó para mí fue copiar las instrucciones utilizadas en este registro de compilación que encontré
La versión corta (para que no tenga que atravesarla usted mismo) es:
fuente
autoreconf -i
es la respuesta correcta (v
yf
generalmente son opcionales)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 unMakefile
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 nuevoconfigure
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.
fuente
./configure && make && sudo make install
como sugeriste en el segundo párrafo.Tuve este problema y descubrí que se debía a la siguiente línea
configure.ac
:La línea no era mala per se, sin embargo, necesitaba moverse más cerca de la parte superior del
configure.ac
archivo.fuente
Haga lo siguiente para solucionar este problema,
Luego haz la instalación
fuente
Al intentar compilar GNU Octave del repositorio de Mercurial, puede encontrar este problema. La solución es ejecutar
./bootstrap
mientras está en la raíz del árbol de origen.fuente
sudo apt-get install automake autoconf
funciona con éxito
fuente
Tuve un problema similar cuando intenté con
./configure
un código fuente y obtuve el mismo error que el publicado. Finalmente resolvió mis problemas ingresando el código:fuente
Después de instalar el
autogen
paquete, este error se resolvió en lawolfSSL
compilación.fuente
Tuve un error ligeramente diferente:
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."
Resulta que configure no se pudo encontrar
build-aux/install-sh
. Lo vinculé asíln -s build-aux/install-sh .
entonces se construye.
Espero que ayude a alguien por ahí!
fuente