C'est la première fois que j'essaie de compiler et d'installer quoi que ce soit sur une machine Linux. J'ai la dernière version de https://github.com/processone/exmpp via git et lisez les instructions qui indiquent:
2. Construire et installer
Exmpp utilise les outils automatiques. Par conséquent, le processus est assez courant:
$ ./configure $ make $ Sudo make install
après le type ./configure
j'obtiens l'erreur
Impossible de trouver install-sh, install.sh ou shtool dans ac-aux
Google n'était d'aucune aide. Pas sûr du tout de ce que je suis censé faire. Toute aide serait très appréciée
Je l'ai eu pour créer le script configure en utilisant les outils suivants:
libtoolize --force
aclocal
autoheader
automake --force-missing --add-missing
autoconf
./configure
Je n'ai pas toutes les dépendances, donc je ne peux pas le tester pour le moment, mais c'est généralement comme cela que vous créeriez un script de configuration à partir d'un fichier ac.
Eh bien, j'ai essayé la réponse de sebastian_k et cela n'a pas fonctionné pour moi (./configure
s'est écrasé à mi-chemin avec une erreur extrêmement étrange).
Cependant, ce qui a bien fonctionné pour moi a été de copier les instructions utilisées dans ce journal de construction que j'ai trouvé
La version courte (pour que vous n'ayez pas à la parcourir vous-même) est la suivante:
$ autoreconf -vif
$ ./configure --prefix=/usr/lib/erlang/lib
$ make
$ Sudo make install
Cette question, et la plupart des autres réponses présentées ici, résultent d'un malentendu sur la manière dont les projets utilisant GNU Build System (a.k.a. Autotools) sont distribués. En fait, dans le cas de la bibliothèque Erlang XMPP mentionnée par l'OP, le malentendu semble être de la part des développeurs.
Si vous ne souhaitez que compiler et installer un projet publié avec GNU Autotools, alors vous ne devez pas l'extraire du système de contrôle de la source. Vous devriez plutôt télécharger la version version packagée fournie par le développeur. Celles-ci prennent normalement la forme d'archives distribuées sur le site Web du projet. Pour les projets hébergés entièrement sur GitHub, Savannah ou un service d’hébergement similaire, ces archives se trouvent généralement derrière un lien intitulé "Télécharger" ou "Versions". Vous décompressez le package et énoncez une variante de l'incantation ./configure && make && Sudo make install
standard. C'est tout; vous n'avez pas besoin d'appeler l'un des GNU Autotools, ni même d'avoir le GNU Autotools installé sur votre système.
Si vous, l'utilisateur, n'avez pas besoin de GNU Autotools pour compiler un projet emballé par Autotools, c'est que le développeur a déjà utilisé les divers outils Autotools. programmes pour générer une "archive tar de distribution" pouvant être utilisée pour construire le logiciel sur n’importe quel système de type Unix. L'archive de distribution contient un script hautement portable configure
qui analyse l'environnement de construction, recherche les dépendances et construit un Makefile
personnalisé en fonction de votre système.
La seule raison pour laquelle vous devriez avoir besoin d'installer et d'appeler vous-même GNU Autotools, c'est si vous voulez faire development travailler sur un projet construit avec Autotools. Et même dans ce cas, vous n’auriez probablement pas besoin d’Autotools si vous ne modifiez pas les dépendances du projet. Dans ce cas, vous devez effectivement extraire la source d'origine, apporter les modifications appropriées aux fichiers d'entrée spécifiques à Autotools (configure.ac
, Makefile.am
, etc.) et y exécuter les outils Autotools pour générer un nouveau fichier configure
. Si vous souhaitez publier indépendamment le package révisé, vous utiliserez le fichier Makefile généré par Autotools pour générer une nouvelle archive tar de distribution, puis publiez cette archive quelque part en ligne.
Le problème est que certains développeurs mettent leur référentiel source à la disposition du public, mais négligent de publier leurs archives de distribution (ou rendent difficile la localisation de leur publication). Par exemple, plutôt que publiant leurs archives de distribution sous forme de versions de GitHub , les versions de GitHub de la bibliothèque Erlang XMPP sont des archives du référentiel source brut. Cela rend impossible la compilation du projet sans GNU Autotools, ce qui annule l’objet premier de l’utilisation d’Autotools.
Les GNU Autotools sont quelque chose que développeurs == utilise pour créer des packages de code source portables pour les utilisateurs. Users doit télécharger et compiler à partir de ces packages source, pas le code d'origine du système de contrôle de code source. Si les développeurs ne fournissent pas ces packages sources, ils n'utilisent pas correctement Autotools et doivent être doucement giflés avec une truite mouillée jusqu'à ce qu'ils voient l'erreur de leur manière.
J'ai eu ce problème et j'ai trouvé que c'était dû à la ligne suivante dans configure.ac
:
AC_CONFIG_AUX_DIR([build-aux])
La ligne n'était pas mauvaise en soi, mais il fallait la rapprocher du haut du fichier configure.ac
.
Veuillez faire ce qui suit pour résoudre ce problème,
Sudo apt-get install autogen libtool shtool
Puis faire l'installation
sh autogen.sh --prefix=prefered_install_path
make
make install
Lorsque vous essayez de compiler GNU Octave à partir du référentiel Mercurial, vous pouvez rencontrer ce problème. Le correctif consiste à exécuter ./bootstrap
tout en étant à la racine de l'arborescence source.
Sudo apt-get install automake autoconf
ses travaux avec succès
Après avoir installé le package autogen
, cette erreur a été résolue dans la version wolfSSL
.
Sudo apt-get install autogen libtool shtool
J'ai eu une erreur légèrement différente:
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."
Il s'avère que configure n'a pas trouvé build-aux/install-sh
. Je l'ai lié comme si
ln -s build-aux/install-sh .
alors ça construit.
J'espère que cela aide quelqu'un là-bas!
J'ai eu un problème similaire lorsque j'ai essayé de ./configure
un code source et j'ai obtenu la même erreur que celle publiée. Enfin résolu mes problèmes en entrant le code:
Sudo apt-get install autotools-dev