it-swarm.com.de

Kann install-sh, install.sh oder shtool in ac-aux nicht finden

Dies ist das erste Mal, dass ich versuche, etwas auf einem Linux-Computer zu kompilieren und zu installieren. Ich habe die neueste Version von https://github.com/processone/exmpp über git erhalten und die Anweisungen gelesen, die besagen:

2. Erstellen und installieren

Exmpp verwendet die Autotools. Daher ist der Prozess ziemlich verbreitet:

$ ./configure
$ make
$ Sudo make install

nach Typ ./configure bekomme ich den Fehler

Kann install-sh, install.sh oder shtool in ac-aux nicht finden

Google half wenig bis gar nichts. Ich bin mir überhaupt nicht sicher, was ich tun soll. Jede Hilfe wäre sehr dankbar

81
Micah

Ich habe es geschafft, das Konfigurationsskript mit den folgenden Tools zu erstellen:

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

Ich habe nicht alle Abhängigkeiten, daher kann ich es momentan nicht testen, aber im Allgemeinen würden Sie so ein Konfigurationsskript aus einer AC-Datei erstellen.

108
sebastian_k

Nun, ich habe die Antwort von Sebastian_k ausprobiert und es hat bei mir nicht funktioniert (./configure ist auf halbem Weg mit einem extrem seltsamen Fehler abgestürzt).

Was jedoch für mich funktioniert hat, war das Kopieren der Anweisungen, die in diesem Build-Protokoll, das ich gefunden habe verwendet wurden

Die Kurzversion (damit Sie nicht selbst durchwaten müssen) lautet:

$ autoreconf -vif
$ ./configure --prefix=/usr/lib/erlang/lib
$ make
$ Sudo make install
40
entropy

Diese Frage und die meisten anderen Antworten hier ergeben sich aus einem Missverständnis darüber, wie Projekte, die das GNU Build System (a.k.a. Autotools) verwenden, verteilt werden. Im Falle der vom OP erwähnten Erlang XMPP-Bibliothek scheint das Missverständnis bei den Entwicklern zu liegen.

Die Software richtig beziehen

Wenn Sie nur ein Projekt kompilieren und installieren möchten, das mit den GNU Autotools veröffentlicht wurde, dann sollten Sie es nicht aus dem Quellcodeverwaltungssystem auschecken. Sie sollten stattdessen die vom Entwickler bereitgestellte gepackte Quellversion herunterladen. Diese werden normalerweise in Form von Tarballs auf der Projektwebsite verteilt. Bei Projekten, die vollständig auf GitHub, Savannah oder einem ähnlichen Hosting-Service gehostet werden, befinden sich diese Tarballs normalerweise hinter einem Link mit der Bezeichnung "Download" oder "Releases". Sie entpacken das Paket und sprechen eine Variante der Standardbeschwörung _./configure && make && Sudo make install_ aus. Das ist alles; Sie müssen keines der GNU Autotools aufrufen und müssen nicht einmal die GNU Autotools auf Ihrem System installiert haben.

Der Grund, warum Sie als Benutzer die GNU Autotools nicht benötigen, um ein mit Autotools gepacktes Projekt zu kompilieren, ist, dass der Entwickler die verschiedenen Autotools bereits verwendet hat Programme zum Generieren eines "Distribution Tarballs", mit dem die Software auf einem beliebigen Unix-ähnlichen System erstellt werden kann. Das Distribution-Tarball enthält ein hoch portierbares Skript configure, das die Build-Umgebung durchsucht, nach Abhängigkeiten sucht und ein Makefile erstellt, das an Ihr System angepasst ist.

Wann brauchen Sie Autotools?

Der einzige Grund, warum Sie die GNU Autotools selbst installieren und aufrufen sollten, ist, wenn Sie ein mit Autotools erstelltes Projekt entwickeln möchten. Und selbst dann werden Sie wahrscheinlich die Autotools nicht benötigen, es sei denn, Sie ändern die Abhängigkeiten des Projekts. In diesem Fall müssten Sie in der Tat die Originalquelle auschecken, die für Autotools spezifischen Eingabedateien (_configure.ac_, _Makefile.am_ usw.) entsprechend ändern und die Autotools ausführen, um sie zu generieren eine neue configure Datei. Wenn Sie das überarbeitete Paket unabhängig veröffentlichen möchten, verwenden Sie das von Autotools generierte Makefile, um ein neues Distribution-Tarball zu generieren, und veröffentlichen Sie dieses Tarball dann irgendwo online.

Das Problem ist, dass einige Entwickler ihr Quell-Repository öffentlich verfügbar machen, ihre Distribution-Tarballs jedoch nicht veröffentlichen (oder es schwierig machen, herauszufinden, wo sie veröffentlicht werden). Anstatt Veröffentlichung ihrer Distribution-Tarballs als GitHub-Releases , sind GitHub-Releases der Erlang XMPP-Bibliothek Tarballs des Raw-Quell-Repositorys. Dies macht es unmöglich, das Projekt ohne die GNU Autotools zu kompilieren, was den gesamten Zweck der erstmaligen Verwendung von Autotools zunichte macht.

TL; DR Zusammenfassung

Die GNU Autotools sind etwas, das Entwickler verwenden, um portable Quellcode-Pakete für Benutzer zu erstellen. Benutzer sollten diese Quellcode-Pakete herunterladen und kompilieren, nicht den Originalcode aus dem Versionsverwaltungssystem. Wenn die Entwickler diese Quellpakete nicht bereitstellen, verwenden sie Autotools nicht richtig und sollten vorsichtig mit einer feuchten Forelle geschlagen , bis sie den Fehler ihres Weges sehen.

9
Psychonaut

Ich hatte dieses Problem und stellte fest, dass es an der folgenden Zeile in configure.ac lag:

AC_CONFIG_AUX_DIR([build-aux])

Die Zeile war an sich nicht schlecht, musste jedoch näher an den Anfang der Datei configure.ac verschoben werden.

4
Craig McQueen

Bitte gehen Sie wie folgt vor, um dieses Problem zu beheben:

Sudo apt-get install autogen libtool shtool

Dann machen Sie die Installation

sh autogen.sh --prefix=prefered_install_path
make 
make install 
3
Ravi Hegde

Wenn Sie versuchen, GNU Octave aus dem Mercurial-Repository zu kompilieren, stoßen Sie möglicherweise auf dieses Problem. Das Update besteht darin, ./bootstrap auszuführen, während Sie sich im Stammverzeichnis des Quellbaums befinden.

2
Ruslan

Sudo apt-get install automake autoconf

es funktioniert erfolgreich

1

Nach der Installation des Pakets autogen wurde dieser Fehler im Build wolfSSL behoben.

Sudo apt-get install autogen libtool shtool
0
rashok

Ich hatte einen etwas anderen Fehler:

configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."

Es stellte sich heraus, dass configure build-aux/install-sh nicht finden konnte. Ich habe es so verlinkt

ln -s build-aux/install-sh .

dann baut es.

Hoffe das hilft jemandem da draußen!

0
Barmaley

Ich hatte ein ähnliches Problem, als ich versuchte, einen Quellcode zu ./configure und bekam den gleichen Fehler wie geschrieben. Schließlich löste meine Probleme durch Eingabe des Codes:

Sudo apt-get install autotools-dev
0
retnan