Mittwoch, 9. September 2009

Quelltext kompilieren


Jetzt wird es technisch. In Vorbereitung auf den kommenden Blog-Artikel befassen wir uns mit dem Kompilieren von Quelltext (Source Code) im Terminal. Generell ist die Chance eher gering, als Ubuntu-User in die Verlegenheit zu kommen, einen Quelltext kompilieren zu müssen, bevor ein Programm verwendet werden kann.

Aber da es ausnahmsweise notwendig wird, erhalten Sie hier eine Anleitung. Sie werden sehen, es ist überhaupt nicht kompliziert und man muss auch nicht über besondere Hackerqualitäten verfügen, um einen Quellcode kompilieren zu können. Das macht nämlich das System für Sie. Alles was Sie tun müssen, ist ein Archiv zu entpacken und den Befehl zum Kompilieren zu geben.

Weshalb geben einige Programmierer Software in dieser, anscheinend unfertigen, Form ab? Jede Linux-Distribution hat ihre Eigenheiten, allen gemeinsam ist aber der Linux-Betriebssystemkern. Statt für jede Distribution und Versionsnummer ein eigenes Installationspaket (rpm, deb usw.) zu generieren, überlässt es der Entwickler Ihrem System, den Quelltext entsprechend zu interpretieren und ein lauffähigen Programm zu generieren. Sie geben lediglich das Startkommando dazu. Die Installation von systemnahen Komponenten wie z.B. Treiber, wird ebenfalls häufig in Form von Quelltext angeboten.

Quelltext wird in einer Datei mit dem Suffix .tar geliefert, die wiederum im Format .gz oder .bz2 gepackt wird. Sie haben also nach dem Download eine Archiv-Datei vorliegen, die nach dem Schema programmname.tar.gz oder programmname.tar.bz2 benannt ist.

Öffnen Sie das Terminal und verzweigen Sie in den Ordner, in dem sich die o.g. Datei befindet. Falls die Datei z.B. im Ordner Downloads in Ihrem Benutzerverzeichnis liegt, wechseln Sie mit diesem Befehl in das gewünschte Verzeichnis:

cd $HOME/Downloads

Mit dem Befehl ls (bzw. ls -l für eine detaillierte Darstellung) können Sie sich das Verzeichnis auflisten lassen. Nun machen Sie sich mit dem Befehl su zum Root.

Überall, wo in den folgenden Befehlszeilen der Begriff programmname auftaucht, müssen Sie diesen Platzhalter natürlich mit der richtigen Bezeichnung Ihres Downloads ersetzen. Zunächst muss das Archiv entpackt werden. Je nach Dateiformat variiert der Befehl dazu geringfügig:

tar xvzf programmname.tar.gz
oder
tar xvjf programmname.tar.bz2

Darauf hin wird ein neues Unterverzeichnis programmname erzeugt, in das Sie jetzt verzweigen:

cd programmname

Normalerweise befindet sich in diesem Verzeichnis ein Skript namens configure, mit dem eine Datei Makefile für Ihr System erzeugt wird. Dieses wird benötigt, um das Programm auf Ihr System anzupassen. Mit dem folgenden Befehl wird das Skript ausgelöst:

./configure

Dabei werden u.U. Meldungen auf dem Bildschirm ausgegeben, die Sie übergehen können - es sei denn, das Skript würde wegen eines Fehlers abgebrochen. Sollte sich im entpackten Archiv kein Skript configure befinden, überspringen Sie diesen Schritt einfach.

Nun geht es ans Kompilieren. Der Terminalbefehl dazu lautet schlicht make. Stellen Sie sicher, dass Sie sich noch im Ordner programmname befinden und geben Sie dann ins Terminal ein:

make

Dieser Befehl benötigt die Datei Makefile, die entweder durch das Skript configure erzeugt wurde oder bereits im Ordner enthalten war. So kurz der Befehl ist, so lange braucht er -je nach Programmgrösse- zum Ausführen. Die Erzeugung der Installationsdaten wird durch eine Reihe von Meldungen begleitet - kein Grund, nervös zu werden.

Nachdem alle Daten erzeugt wurden, kann die Installation durchgeführt werden. Der Terminal-Befehl dazu lautet:

make install

Die erfolgreiche Installation wird im Terminal gemeldet. Darauf hin können Sie das Programm aufrufen. Es sollte im Anwendungsmenü verzeichnet sein, anderenfalls rufen Sie das Programm Run mit den Tasten Alt und F2 auf und geben den Programmnamen ins Textfeld ein.

Jetzt könnten Sie die Archiv-Datei und das Installationsverzeichnis löschen, um Platz auf der Festplatte zu schaffen Aber Halt! Wie bei anderen Paketen auch, sollten Sie die Installationsdaten behalten, um das Programm später in allen Bestandteilen löschen zu können. Es gibt einen Terminal-Befehl, der dafür sorgt, dass nur die benötigten Installationsdaten (inkl. Makefile) aufbewahrt und temporäre Daten gelöscht werden:

make clean

Für diesen Befehl müssen Sie sich noch im Ordner programmname befinden. Bewahren Sie diesen Ordner auf; das Archiv (.gz bzw. .bz2) können Sie löschen. Um das Programm später korrekt zu deinstallieren, gehen als Root im Terminal wieder in den Ordner programmname und geben folgenden Befehl ein:

make uninstall

Keine Kommentare:

Kommentar veröffentlichen

Kommentare werden erst nach einer inhaltlichen Unbedenklichkeitsprüfung zur Veröffentlichung freigegeben.