Diese Frage und die meisten anderen Antworten hier ergeben sich aus einem Missverständnis darüber, wie Projekte, die das GNU Build System (auch bekannt als Autotools) verwenden, verteilt werden. Tatsächlich scheint das Missverständnis bei der vom OP erwähnten Erlang XMPP-Bibliothek bei den Entwicklern zu liegen.
Die Software richtig beziehen
Wenn Sie nur ein mit den GNU Autotools veröffentlichtes Projekt kompilieren und installieren möchten, sollten Sie es nicht aus dem Versionsverwaltungssystem 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 aus ./configure && make && sudo make install
. 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 bereits die verschiedenen Autotools-Programme verwendet hat, um ein "Distribution-Tarball" zu generieren, mit dem die Software auf jedem erstellt werden kann Unix-ähnliches System. Das Distribution-Tarball enthält ein hoch portierbares configure
Skript, das die Build-Umgebung durchsucht, nach Abhängigkeiten sucht und ein Makefile
an Ihr System angepasstes Skript erstellt.
Wann brauchen Sie Autotools?
Der einzige Grund, warum Sie die GNU-Autotools selbst installieren und aufrufen sollten, ist, wenn Sie Entwicklungsarbeiten an einem mit Autotools erstellten Projekt durchführen 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 würden Sie tatsächlich benötigen die ursprüngliche Quelle zu überprüfen, um geeignete Änderungen an den Autotools spezifischen Eingabedateien ( configure.ac
, Makefile.am
usw.), und die Autotools laufen auf ihnen eine neue zu generieren 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). Zum Beispiel, anstatt die Veröffentlichung ihrer Verteilung tarballs als GitHub veröffentlicht , die Erlang XMPP Bibliothek GitHub Releases sind tarballs des rohen Quellrepository. Dies macht es unmöglich, das Projekt ohne die GNU-Autotools zu kompilieren, was den gesamten Zweck der Verwendung von Autotools zunichte macht.
TL; DR Zusammenfassung
Die GNU-Autotools werden von Entwicklern verwendet, um portable Quellcode-Pakete für Benutzer zu erstellen. Benutzer sollten aus diesen Quellcode-Paketen herunterladen und kompilieren, nicht den Originalcode aus dem Versionsverwaltungssystem. Wenn die Entwickler diese Quellpakete nicht bereitstellen, verwenden sie Autotools nicht korrekt und sollten vorsichtig mit einer feuchten Forelle geschlagen werden, bis sie den Fehler ihres Weges erkennen.