2016-04-29 12 views
0

Ich schreibe ein Programm, das LLVM benötigt, und denke daran, Autotools zu benutzen, um es unter Linux zu versenden, also würde der Prozess aus der Sicht des Benutzers wie der bekannte ./configure && make && sudo make install aussehen.Abhängigkeiten in configure script installieren

Bei Autotools ist normalerweise die Installation von Abhängigkeiten vom Systempaketmanager abhängig. Das Problem ist, dass dies aus irgendeinem Grund nicht mit LLVM funktioniert; auf Ubuntu 14.04, apt-get denkt, dass die neueste Version 3.4 ist, während eine aktuellere Version tatsächlich benötigt würde. Daher muss ich zuerst ein Skript zum Herunterladen und Erstellen von LLVM bereitstellen (eine lokale Kopie davon, die nicht mit einer älteren Version kollidiert, die sich möglicherweise auf dem System befindet), ein Prozess, der einige Stunden dauert.

Der offensichtlichste Platz, um diesen Prozess zu setzen, ist am Anfang configure. Wird dies als normal und angemessen angesehen? Oder gibt es eine Konvention, dass configure nur die Dinge enthalten sollte, die autotools normalerweise darin steckt, und die Installation von Abhängigkeiten sollte ein anderes Skript sein, das der Benutzer zuerst und separat ausführt? Gibt es im letzteren Fall eine Übereinkunft darüber, wie dieses separate Skript aufgerufen werden sollte?

+2

Es ist normal, dass Ubuntu 14.04 eine alte LLVM enthält, weil 14.04 vor 2 Jahren war. System-Paket-Manager installieren nie die neuesten Softwareversionen, sie installieren die in der Distribution enthaltenen Versionen. – wRAR

+0

@wRAR Okay, es ist nicht nur ein Fehler an meinem Ende, es ist normal und zu erwarten, dass ich meine eigenen Vorbereitungen für versionsabhängige Abhängigkeiten treffen muss. – rwallace

Antwort

2

Installieren Sie während der Konfiguration nichts. Der Name des Skripts lautet "configure", nicht "install-dependencies".

Schreiben Sie eine Konfigurationsprüfung, und wenn llvm fehlt, geben Sie dem Benutzer eine Erklärung zur Installation. Falls erforderlich, ein separates Skript zum Herunterladen von llvm bereitstellen.

Es ist eine gute Praxis, configure (und make) als normaler nichtprivilegierter Benutzer und nicht als root auszuführen. Sie haben möglicherweise nicht einmal die Berechtigung, etwas zu installieren. Sie müssen überprüfen, ob "sudo" installiert ist usw. Es kann auch vorkommen, dass das System, das der Benutzer installiert, keine Netzwerkverbindung (Firewall usw.) hat, so dass Ihr Download fehlschlägt.

Verwandte Themen