C'est la première fois que j'essaie de compiler et d'installer quoi que ce soit sur une machine Linux. J'ai reçu la dernière version de https://github.com/processone/exmpp via git et j'ai lu 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
je reçois 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
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:
la source
autoreconf -i
est la bonne réponse (v
etf
sont généralement facultatifs)Cette question, et la plupart des autres réponses ici, découlent d'une incompréhension de la manière dont les projets utilisant le système de construction GNU (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.
Obtenir le logiciel de la bonne façon
Si tout ce que vous voulez, c'est compiler et installer un projet publié avec les outils automatiques GNU, vous ne devez pas l'extraire du système de contrôle de code source . Vous devriez plutôt télécharger la version source 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 paquet et énoncez une variante de l'
./configure && make && sudo make install
incantation standard . C'est tout; vous n'avez pas besoin d'appeler l'un des outils automatiques GNU et vous n'avez même pas besoin d'installer les outils automatiques GNU 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 programmes Autotools pour générer une "archive tar de distribution" qui peut être utilisée pour créer le logiciel sur n’importe quel logiciel. Système de type Unix. L’archive tar de la distribution contient un
configure
script hautement portable qui analyse l’environnement de construction, recherche les dépendances et crée un environnementMakefile
personnalisé pour votre système.Alors, quand avez-vous besoin d'Autotools?
Si vous souhaitez effectuer des travaux de développement sur un projet construit avec Autotools, la seule raison pour laquelle vous auriez besoin d'installer et d'appeler GNU Autotools est . 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 bien vérifier la source d' origine, apporter des modifications appropriées aux fichiers d'entrée spécifiques Autotools (
configure.ac
,Makefile.am
, etc.), et exécuter les Autotools sur eux pour générer un nouveauconfigure
fichier. Si vous souhaitez publier indépendamment le package révisé, vous utiliseriez 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 de publier leurs archives tar de distribution sous forme de versions GitHub , les versions GitHub de la bibliothèque Erlang XMPP sont des archives du référentiel source brut. Cela rend impossible la compilation du projet sans les outils automatiques GNU, annulant ainsi l’objectif premier d’utiliser Autotools.
Résumé TL; DR
Les outils automatiques GNU sont quelque chose que les développeurs utilisent pour créer des paquets de code source portables pour les utilisateurs. Les utilisateurs doivent télécharger et compiler à partir de ces packages source, et non du code d'origine du système de contrôle de source. Si les développeurs ne fournissent pas ces packages sources, ils n'utilisent pas correctement Autotools et doivent être giflés doucement avec une truite mouillée jusqu'à ce qu'ils voient l'erreur de leur manière.
la source
./configure && make && sudo make install
comme vous l'avez suggéré dans le deuxième paragraphe.J'ai eu ce problème et j'ai trouvé que c'était dû à la ligne suivante
configure.ac
:La ligne n'était pas mauvaise en soi, mais il fallait la rapprocher du haut du
configure.ac
fichier.la source
Veuillez faire ce qui suit pour résoudre ce problème,
Puis faire l'installation
la source
Lorsque vous essayez de compiler GNU Octave à partir du référentiel Mercurial, vous pouvez rencontrer ce problème. Le correctif consiste à s'exécuter
./bootstrap
tout en étant à la racine de l'arborescence source.la source
sudo apt-get install automake autoconf
ses travaux avec succés
la source
J'ai eu un problème similaire lorsque j'ai essayé
./configure
un code source et obtenu la même erreur que celle publiée. Enfin résolu mes problèmes en entrant le code:la source
Après l'installation du
autogen
paquet, cette erreur a été résolue dans lawolfSSL
construction.la source
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 pu trouver
build-aux/install-sh
. Je l'ai lié comme siln -s build-aux/install-sh .
alors ça construit.
J'espère que cela aide quelqu'un là-bas!
la source