Kapitel 13. Freie Software kompilieren und installieren

Inhaltsverzeichnis
13.1. Einführung
13.1.1. Was Sie brauchen
13.1.2. Das Kompilieren
13.1.3. Struktur eines Softwarepakets
13.2. Entpacken
13.2.1. tar.gz Archive
13.2.2. Die Benutzung von GNU Tar
13.2.3. bzip2
13.2.4. Nur Mut!
13.3. Konfiguration
13.3.1. Autoconf
13.3.2. Imake
13.3.3. Verschiedene Shell-Skripte
13.3.4. Andere Möglichkeiten
13.4. Kompilation
13.4.1. make
13.4.2. Regeln
13.4.3. Jetzt geht's los!
13.4.4. Erklärungen
13.4.5. Was, wenn... es nicht klappt?
13.5. Installation
13.5.1. Mit make
13.5.2. Probleme
13.6. Unterstützung
13.6.1. Dokumentation
13.6.2. Technische Hilfe
13.6.3. Wo Sie freie Software finden
13.7. Danksagungen
13.8. Copyright

Es ist eine oft gestellte Frage, wie man Software im Quellcode installiert. Das ist im Grunde gar nicht so schwer, weil in den meisten Fällen immer die selben Schritte auszuführen sind, unabhängig vom Charakter der Software.

Dieses Dokument will den Anfänger oder die Anfängerin Schritt für Schritt durch diesen Prozess führen. Jeder Schritt wird erklärt, nichts ist Hexerei. Es wird allerdings angenommen, dass der Leser einige Minimalkenntnisse von Unix hat, beispielsweise ls oder mkdir sollten vertraut sein.

Dieses Kapitel ist lediglich eine Einführung, keine Referenz. Daher finden Sie am Ende Verweise auf weitere Informationsquellen. Verbesserungsvorschläge sind willkommen.

13.1. Einführung

Im Unterschied zu proprietärer Software haben Sie bei freier Software den Zugriff auf den Quellcode[1]. Freie Software wird also in Quelldatei-Archiven vertrieben. Das mag auf Sie als Anfänger entmutigend wirken, denn als Benutzer freier Software müssen Sie den Quellcode erst kompilieren, bevor Sie ihn benutzen können.

Heutzutage liegt ein Großteil freier Software in bereits kompilierten Versionen vor, die nur noch installiert werden müssen. Doch einige freie Software wird nicht in dieser Form vertrieben oder aktuelle Versionen liegen (noch) nicht in dieser Form vor. Möglicherweise handelt es sich um ein eher exotisches Programm, das den Aufwand einer Vorabkompilation nicht rechtfertigt. Mehr noch: die selbst durchgeführte Kompilation erlaubt Ihnen, Optionen auszuwählen und so die Software Ihren Wünschen anzupassen.

13.1.1. Was Sie brauchen

Um freie Software kompilieren zu können, brauchen Sie:

  • einen Computer mit einem funktionierenden Betriebssystem,

  • einigen Platz auf Ihrer Festplatte,

  • ein Kompilationsprogramm (meist für die Sprache C), ein Archivi­erungsprogramm (tar),

  • Grundkenntnisse über Ihr Betriebssystem,

  • etwas zu essen (Kompilieren kann manchmal etwas länger dauern). Übrigens: ein ,,echter Hacker`` isst Pizzas, keine Quiches... :-) Natürlich können Sie während der Kompilation auch mit Ihrem Betriebs­system weiterarbeiten...

  • etwas zu trinken (aus demselben Grund). Ein ,,echter Hacker`` bevor­zugt koffeinhaltige Getränke...

  • die Telefonnummer Ihres privaten Computer-Gurus, der jede Woche seinen Kern neu durchbaut,

  • und VIEL Geduld.

Obwohl die Kompilation freier Software in den meisten Fällen keine größeren Probleme aufwirft, können schon kleinere Schwierigkeiten den ungeübten Benutzer aus der Bahn werfen. Dieses Kapitel soll Ihnen helfen, das zu vermeiden.

13.1.2. Das Kompilieren

13.1.2.1. Das Prinzip

Der Schritt vom Quelltext zur Binärdatei heißt Kompilation (üblicherweise ist der Quelltext in C oder C++ geschrieben, da diese Sprachen in der (Unix)-Welt freier Software am beliebtesten sind). Einige Programme verwenden Sprachen, die keine Kompilation erfordern (wie etwa Perl), doch selbst diese Programme müssen immer noch konfiguriert werden.

Die Kompilation von Programmen in C wird logischerweise von einem C-Kompilationsprogramm durchgeführt. Dieses Kompilationsprogramm ist üblicherweise gcc, der freie Kompilierer des GNU-Pro­jektes (http://www.gnu.org/). Die Kompilation eines Softwarepakets stellt eine komplexe Aufgabe dar: da Programmierer aus Gründen der Effizienz den Quellcode in verschiedene Dateien schreiben, müssen mehrere Dateien in der richtigen Reihenfolge kompiliert werden. Der Einfachheit halber wird das von einem Programm namens make durchgeführt.

13.1.2.2. Die vier Phasen einer Kompilierung

Das Verständnis der vier Phasen einer Kompilierung wird Ihnen dabei helfen, Probleme frühzeitig zu erkennen und zu lösen. Das Ziel einer Kompilation ist es, einen Text in einer Sprache, die ein entsprechend vorgebildeter Mensch lesen und schreiben kann, in einen Text einer Sprache, die eine Maschine (und einige ganz wenige Spezialisten) verstehen, zu verwandeln. gcc führt nacheinander vier Programme aus, wobei jedes für eine Phase zuständig ist:

  1. cpp: Im ersten Schritt werden Präprozessor-Anweisungen durch reine C-Anweisungen ersetzt. Meist wird eine sog. Header-Datei eingeladen (#include) oder ein Makro definiert (#define). Am Ende dieser Phase steht reiner C-Code.

  2. cc1: Dieser Schritt verwandelt C-Code in Assembler. Der gene­rierte Code ist plattformabhängig.

  3. as: Dieser Schritt verwandelt den Assembler-Code in Objekt-, bzw. Binär-Code. Am Ende dieser Phase steht eine .o-Datei.

  4. ld: Der letzte Schritt (Linken) verbindet alle Objekt-Dateien (.o) und die zugehörigen Bibliotheken und erzeugt eine ausführbare Datei.

13.1.3. Struktur eines Softwarepakets

Ein korrekt strukturiertes Paket freier Software zeigt immer diesen Aufbau:

  • eine Datei namens INSTALL, welche die Installationsprozedur be­schreibt, Sie sollten diese Datei auf jeden Fall lesen!

  • eine Datei namens README, welche allgemeine Informationen zum Programm enthält, wie etwa eine kurze Beschreibung, den Namen des Autors, wo neue Versionen zu bekommen sind, verwandte Dokumentation etc.).

    Wenn die INSTALL-Datei fehlen sollte, enthält README normalerweise eine kurze Beschreibung der Installation. Auch diese Datei sollten Sie auf jeden Fall lesen!

  • eine Datei namens COPYING, welche die Lizenz oder die Vertriebs­bedingungen der Software enthält. Manchmal ersetzt durch eine Datei namens LICENSE;

  • eine CONTRIB- oder CREDITS-Datei, welche Personen auflistet, die mit der Software in Verbindung stehen (aktive Teilnehmer, wichtige Kommentatoren, Autoren von Dritt-Programmen usw.);

  • eine Datei namens CHANGES oder NEWS, welche die letzten Änderungen an der Software auflistet;

  • eine Datei namens Makefile (siehe Abschnitt 13.4.1), die die Kompilierung von Software mittels make ermöglicht. Oft wird diese Da­tei erst im Konfigurationsprozess erstellt;

  • oft eine Datei namens configure oder Imakefile, welche die Erzeugung eines Makefiles ermöglicht;

  • ein Verzeichnis mit den Quelldateien; dort wird meist auch die er­zeugte Binärdatei gespeichert. Häufig heißt es src;

  • ein Verzeichnis, das die Programmdokumentation enthält (üblicherweise im man- oder Texinfo-Format. Sein Name ist meist doc;

  • manchmal ein Verzeichnis, das programmspezifische Daten enthält (Konfigurationsdateien, Beispieldateien, Ressourcendateien).

Fußnoten

[1]

Das ist nicht ganz exakt, da einige proprietäre Programme auch mit ihrem Quellcode vertrieben werden. Doch darf dieser Quellcode nicht beliebig verändert und weiterverbreitet werden.


Tux on Star from MandrakeSoft Linux ist ein eingetragenes Warenzeichen von Linus Torvalds. Alle anderen Warenzeichen und Copyrights sind das Eigentum ihrer Inhaber.
Sofern nichts anderes Angaben ist, unterliegen die Inhalte der Seiten sowie alle Bilder dem Copyright von MandrakeSoft S.A. und MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/