Die Installation aktueller Linux-Programme läuft häufig über den “klassischen” Weg, der aus den drei Schritten ./configure, make und make install besteht. Dabei kann allerdings einiges schiefgehen, wenn etwa für das Übersetzen notwendige Pakete fehlen. Schauen wir uns die typischen Probleme an…
Beim Installieren eines Programmes aus einem tar.gz-Quelltext-Archiv ist es das Ziel, mit Hilfe eines Compilers ausführbare Programme zu erzeugen. Dazu muss der Compiler natürlich installiert sein. Da es in der Regel um C- oder C++-Programme geht, sollte also ein C-Compiler auf Ihrer Platte sein. Bei den meisten aktuellen Distributionen ist das der egcs, und so heißt auch das rpm-Paket, das ihn enthält. Der Compiler alleine reicht aber nicht aus. Beim Kompilieren wird ein sogenanntes Makefile verwendet, das die Anweisungen enthält, mit denen die Programme übersetzt werden. Damit dieses ausgeführt werden kann, muss das Dienstprogramm make installiert sein, welches sich im rpm-Paket gleichen Namens versteckt.
Um zu prüfen, ob alles notwendige Zubehör vorhanden ist, können Sie die Befehle
rpm -q egcs rpm -q make
eingeben; rpm sollte daraufhin jeweils mit dem Paketnamen und einer Versionsnummer (z. B. egcs-1.1.2-30 und make-3.78.1-4) antworten. Fehlt hier etwas, dann suchen Sie auf der Installations-CD Ihrer Linux-Distribution nach den entsprechenden Paketen (etwa egcs-1.1.2-30.i386.rpm und make-3.78.1-4.i386.rpm und installieren diese als Administrator root über den Befehl
rpm -Uvh paketname.rpm
nach. Der erste Schritt nach dem Auspacken des Quelltext-Archivs (und Wechsel in das neue Verzeichnis) ist das Konfigurieren der Sourcen – dabei wird das Makefile erzeugt. Der Befehl dazu ist
./configure
Die beiden Zeichen am Anfang sind in der Regel notwendig, damit Ihre Shell im aktuellen Verzeichnis nach dem Skript configure sucht. Dieses Skript durchsucht nun Ihr System nach Programmen und Bibliotheken, die für die Übersetzung der neuen Software benötigt werden; wollen Sie etwa ein KDE-Programm installieren, so sind mindestens die X-Window- und KDE-Bibliothekenund die zugehörigen Include-Filesnotwendig; entsprechendes gilt für GNOME-Programme.
Fehlen die notwendigen Dateien, erhalten Sie beim Aufruf von ./configure beispielsweise Fehlermeldungen der Form
checking for X... configure: error: Can't find X includes. Please check your installation and add the correct paths!
Die notwendigen Pakete sind im Detail:
XFree86-devel-3.3.6-20.i386.rpm kdelibs-1.1.2-15.i386.rpm kdelibs-devel-1.1.2-15.i386.rpm qt-2.1.0-4.beta1.i386.rpm qt-devel-2.1.0-4.beta1.i386.rpm gnome-libs-1.2.0-0mdk_helix_2.i586.rpm gnome-libs-devel-1.2.0-0mdk_helix_2.i586.rpm
Die Versionsnummern sind dabei natürlich nur beispielhaft; falls Sie auf die Anfragen rpm -q XFree86-devel, rpm -q kdelibs-devel, rpm -q gnome-libs-devel usw. die Antwort “package … is not installed” erhalten, suchen Sie einfach auf Ihrer Distributions-CD nach ähnlich benannten Paketen und installieren diese (wie oben) nach. Für KDE-Programme werden natürlich nicht die GNOME-Bibliotheken benötigt, und anders herum.
Nach der Installation sollten die Fehlermeldungen unterbleiben, die ein Fehlen von “X includes” und ähnlichem bemängeln.
KDEDIR und QTDIR
Beim Übersetzen von KDE-Programmen tritt häufig das Problem auf, dass die Umgebungsvariablen KDEDIR und QTDIR nicht oder nicht richtig gesetzt sind; dies ist z. B. bei SuSE Linux 6.2 der Fall, wenn beide Qt-Bibliotheks-Versionen (1.x und 2.x) installiert sind. Setzen Sie, wenn es Probleme beim Kompilieren gibt, QTDIR auf das richtige Verzeichnis (z. B. mit export QTDIR=/usr/lib/qt-2.1.0). Auch KDEDIR sollte richtig gesetzt sein, bei den meisten Distributionen ist der richtige Wert /opt/kde oder /usr.
Glossar
-
Bibliotheken
-
Bibliotheken enthalten standardisierte Routinen (Programmteile), die von vielen Programmen benutzt werden können: So verwenden etwa die meisten KDE-Programme den gleichen Code zum Öffnen von Dateien – es wäre nun aber Unfug, diesen Code in jedes KDE-Programm fest einzubinden: das würde dazu führen, dass der Code mehrfach im Hauptspeicher des Rechners wäre, wenn mehrere KDE-Programme ausgeführt werden. Stattdessen landet dieser Code in einer Bibliothek, die dann nur ein einziges Mal geladen werden muss und allen KDE-Programmen zur Verfügung steht. Die Bibliotheken (engl.: Libraries) liegen meistens in /usr/lib/, /usr/local/lib/ oder Unterverzeichnissen davon; nur einige wichtige Systembibliotheken liegen direkt in
/lib. -
Include-Files
-
Während die Bibliotheken von fertigen Programmen verwendet werden, muss dem Compiler beim Übersetzen eines Programmes gesagt werden, wie auf die Bibliotheken zugegriffen werden kann, d. h. welche Programm-Funktionen sie bereitstellen. Dazu dienen die Include-Dateien, die die Endung
.hhaben und von den C- oder C++-Programmen eingebunden werden. Die Include-Dateien finden Sie meist in/usr/include,/usr/local/includeund deren Unterverzeichnissen.
