Kapitel 17. Freie Software kompilieren und installieren

Inhaltsverzeichnis
17.1 Einführung
17.1.1 Was Sie brauchen
17.1.2 Das Kompilieren
17.1.3 Struktur eines Softwarepakets
17.2 Entpacken
17.2.1 tar.gz Archive
17.2.2 Die Benutzung von GNU Tar
17.2.3 bzip2
17.2.4 Nur Mut!
17.3 Konfiguration
17.3.1 autoconf
17.3.2 imake
17.3.3 Verschiedene Shell-Skripte
17.3.4 Andere Möglichkeiten
17.4 Kompilation
17.4.1 make
17.4.2 Regeln
17.4.3 Jetzt geht's los!
17.4.4 Erklärungen
17.4.5 Was, wenn... es nicht klappt?
17.5 Installation
17.5.1 Mit make
17.5.2 Probleme
17.6 Unterstützung
17.6.1 Dokumentation
17.6.2 Technische Hilfe
17.6.3 Wo Sie freie Software finden
17.7 Danksagungen

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.

17.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.

17.1.1 Was Sie brauchen

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

  • einen Computer mit einem funktionierenden Betriebssystem,

  • einiges an Wissen über das eingesetzte Betriebssystem,

  • einigen Platz auf Ihrer Festplatte,

  • ein Kompilationsprogramm (meist für die Sprache C), ein Archivierungsprogramm (tar),

  • 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 Betriebssystem weiterarbeiten...

  • etwas zu trinken (aus demselben Grund). Ein ,,echter Hacker`` bevorzugt 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.

17.1.2 Das Kompilieren

17.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-Projektes (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.

17.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 generierte Code ist plattformabhängig.

  3. as: Dieser Schritt verwandelt den Assembler-Code in Objekt-, bzw. Binärkode. 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.

17.1.3 Struktur eines Softwarepakets

Ein korrekt strukturiertes Paket freier Software zeigt immer diesen Aufbau:

  • eine Datei namens INSTALL, welche den Installationsvorgang beschreibt, 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.).

  • eine Datei namens COPYING, welche die Lizenz oder die Vertriebsbedingungen 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 make), die die Kompilierung von Software mittels make ermöglicht. Oft wird diese Datei 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 erzeugte 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 vor dem MandrakeSoft Stern] 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. 2001.
http://www.mandrakelinux.com/