Kapitel 12. Freie Software kompilieren und installieren

Inhaltsverzeichnis
12.1 Einführung
12.1.1 Was Sie brauchen
12.1.2 Das Kompilieren
12.1.3 Struktur eines Softwarepakets
12.2 Entpacken
12.2.1 tar.gz Archive
12.2.2 Die Benutzung von GNU Tar
12.2.3 bzip2
12.2.4 Nur Mut!
12.3 Konfiguration
12.3.1 autoconf
12.3.2 imake
12.3.3 Verschiedene Shell-Skripte
12.3.4 Andere Möglichkeiten
12.4 Kompilation
12.4.1 make
12.4.2 Regeln
12.4.3 Jetzt geht's los!
12.4.4 Erklärungen
12.4.5 Was, wenn... es nicht klappt?
12.5 Installation
12.5.1 Mit make
12.5.2 Probleme
12.6 Unterstützung
12.6.1 Dokumentation
12.6.2 Technische Hilfe
12.6.3 Wo Sie freie Software finden
12.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 Systemen 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.

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

12.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 Archivie­rungsprogramm (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`` 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.

12.1.2 Das Kompilieren

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

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

12.1.3 Struktur eines Softwarepakets

Ein korrekt strukturiertes Paket freier Software zeigt immer diesen Aufbau:

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

  • 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 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 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. 2002.
http://www.mandrakelinux.com/