Impossible de trouver install-sh, install.sh ou shtool dans ac-aux

75

C'est la première fois que je tente de compiler et d'installer quoi que ce soit sur une machine Linux. J'ai reçu la dernière version du link via git et lu les instructions indiquant:

2. Build and install

Exmpp uses the Autotools. Therefore the process is quite common:

$ ./configure
$ make
$ sudo make install

après le type ./configure j'obtiens l'erreur

Cannot find install-sh, install.sh, or shtool in ac-aux

Google n’a été d'aucune aide. Pas sûr du tout de ce que je suis censé faire. Toute aide serait très appréciée

    
posée Micah 23.02.2011 - 07:14
la source

8 réponses

96

Je l'ai créé pour créer le script de configuration à l'aide des outils suivants:

libtoolize --force
aclocal
autoheader
automake --force-missing --add-missing
autoconf
./configure

Je n'ai pas toutes les dépendances, je ne peux donc 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.

    
réponse donnée sebastian_k 23.02.2011 - 07:30
la source
38

Eh bien, j'ai essayé la réponse de sebastian_k et cela n'a pas fonctionné pour moi ( ./configure s'est écrasé au milieu d'une erreur extrêmement bizarre).

Cependant, ce qui a bien fonctionné pour moi a été de copier les instructions utilisées dans cette construction. Connectez-vous 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
    
réponse donnée entropy 10.11.2012 - 14:30
la source
8

Cette question, et la plupart des réponses fournies ici, résultent d'un malentendu sur la façon dont les projets utilisant le système de construction GNU (aka 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 dans le bon sens

Si vous souhaitez uniquement compiler et installer un projet publié avec les outils automatiques GNU, 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 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'incantation standard ./configure && make && sudo make install . 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é dans Autotools, c'est que le développeur a déjà utilisé les différents programmes Autotools pour générer un "archet de distribution". qui peut être utilisé 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é pour votre système.

Alors, quand avez-vous besoin d'Autotools?

Si vous souhaitez effectuer un développement sur un projet construit avec Autotools, vous ne devez installer et invoquer vous-même que les outils automatiques GNU. 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 devrez effectivement extraire le source d'origine, apporter les modifications appropriées aux fichiers d'entrée spécifiques à Autotools ( configure.ac , Makefile.am , etc.) et exécuter l'Autotools sur ces derniers pour générer un nouveau% co_de. % fichier. 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 rendent leur référentiel source accessible au 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 en tant que versions de GitHub , le 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 packages 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 code source. Si les développeurs ne fournissent pas ces packages sources, ils n'utilisent pas Autotools correctement et doivent être giflés doucement avec un truite jusqu'à ce qu'ils voient l'erreur de leurs manières.

    
réponse donnée Psychonaut 01.09.2017 - 12:53
la source
4

J'ai eu ce problème et j'ai constaté qu'il é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 .

    
réponse donnée Craig McQueen 02.05.2016 - 13:29
la source
2

Faites ce qui suit pour résoudre ce problème,

sudo apt-get install autogen libtool shtool

Puis effectuez l'installation

sh autogen.sh --prefix=prefered_install_path
make 
make install 
    
réponse donnée Ravi Hegde 02.09.2015 - 13:30
la source
1

sudo apt-get install automake autoconf

ses travaux avec succès

    
réponse donnée Shafiul Karim Bulan 12.06.2013 - 08:47
la source
1

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.

    
réponse donnée Ruslan 22.03.2017 - 14:45
la source
0

J'ai eu un problème similaire lorsque j'ai essayé de ./configure un code source et que j'ai la même erreur que celle publiée. Enfin résolu mes problèmes en entrant le code:

sudo apt-get install autotools-dev
    
réponse donnée retnan 09.02.2013 - 17:35
la source

Lire d'autres questions sur les étiquettes