configure-Fehlermeldungen entschlüsseln

Fehler-Fahnder

Nirgendwo lauern so viele Fehlermeldungen wie beim Kompilieren von Software. Besonders kritisch sind configure-Skripte – Zeit für einen Wegweiser aus dem Fehlerlabyrinth.

Früher oder später erlebt es jeder Linux-Nutzer: Ein heißbegehrtes Programm gibt es nicht als fertiges Paket für die eigene Distribution. Erfahrene Linuxer sind mit dem Ratschlag "Dann kompilier es doch einfach selbst!" schnell bei der Hand. Statt des neuen Programms warten auf ambitionierte Jungkompilierer jedoch meistens nur haufenweise Fehlermeldungen. Da wirft manch einer die Flinte ins Korn und kommt zu dem Schluss, man müsse programmieren können, um Software erfolgreich zu übersetzen.

Das stimmt glücklicherweise nicht, denn der Kompilierprozess ist bei den meisten Anwendungen weitgehend automatisiert. Wer wissen will, wie der aussieht und was bei den drei Schritten ./configure, make und make install passiert, informiert sich in [1] über die Grundlagen.

Der vorliegende Artikel widmet sich den Fehlermeldungen, die Ihnen beim ./configure-Aufruf begegnen. Denn um Software selbst zu übersetzen, ist es wichtig zu wissen, wie man deren Ursache abstellt.

Grundausstattung

Haben Sie den Quellcode einer Anwendung heruntergeladen und entpackt, ist das dabei entstandene Verzeichnis Ihr Arbeitsplatz. Der erste Blick sollte dort den Dateien README und INSTALL gelten. Darin steht, ob Sie das Programm tatsächlich mit dem klassischen Dreisatz übersetzen oder ob Sie zuvor eine Datei bearbeiten müssen. Viele Programmierer verraten hier ebenfalls, ob Sie weitere Software für das Programm benötigen.

Wer anschließend zum ersten Mal auf seinem System den Befehl ./configure eingibt, bei dem bricht das Shell-Skript oft schon kurz nach dem Aufruf mit diesen Meldungen ab:

checking for gcc… no
checking for cc… no
checking for cc… no
checking for cl… no
configure: error: no acceptable C compiler found in $PATH

Es schaut nach, ob alle Dateien vorhanden sind, die Sie brauchen, um die Software zu übersetzen. Was es prüft, steht in den mit checking beginnenden Zeilen. An deren Ende folgt das Ergebnis, hier no, also "nein". Da das Skript erfolglos gesucht hat, beendet es sich und präsentiert eine Fehlermeldung. Selbst wer kein Englisch spricht, übersetzt sie schnell mit einem Wörterbuch: keinen passenden C-Compiler im $PATH gefunden.

Die Variable PATH (dass es eine Variable ist, erkennen Sie am vorangestellten Dollar-Zeichen, einem Operator, der ihren Inhalt anfordert) enthält den Suchpfad für ausführbare Programme. Welche Verzeichnisse er umfasst, variiert von Distribution zu Distribution. Der Befehl echo $PATH zeigt sie an.

Das nicht auffindbare Programm ist ein C-Compiler, die Anwendung, die in der Sprache C geschriebene Software in ein ausführbares Programm übersetzt. Unter Linux kommt dafür gewöhnlich der gcc zum Einsatz. Dieses unentbehrliche Werkzeug installiert mittlerweile fast keine Distribution mehr standardmäßig mit.

Tabelle 1 listet die Pakete auf, mit denen Sie Ihr System fit fürs Kompilieren machen. Dazu gehören nicht nur das Handwerkszeug wie der Compiler und das Programm make, sondern auch Entwicklerpakete, die Dateien enthalten, die Sie beim Übersetzen grafischer Anwendungen brauchen.

Lassen Sie sich nicht von der Paketbeschreibung dieser Devel-Pakete verwirren: Sie suggeriert, Sie brauchten diese Dateien nur, um selbst Software zu schreiben. Allerdings sind sie auch nötig, um fertig geschriebenen Quellcode zu übersetzen.

Spielen Sie die Entwicklerpakete über die Paketverwaltung Ihrer Distribution ein (Abbildung 1)! Wer die Personal-Version von Suse Linux verwendet, muss die meisten davon vom Suse-FTP-Server herunterladen: Dieses Produkt bringt nämlich fast keine Entwicklerpakete mit.

Abbildung 1: In der Kategorie "Entwicklung" finden Sie bei Suses Yast die Pakete, die Sie zum Kompilieren brauchen.

Tabelle 1: Grundausstattung für ein Entwicklersystem

Paket Inhalt
gcc Compiler für in C geschriebene Software.
gcc-c++ Compiler für in C++ geschriebene Software.
libstdc++-devel Entwicklerdateien zum Übersetzen von C++-Programmen.
make Programm für die automatisierte Übersetzung von Quellcode anhand einer "Regeldatei", des Makefiles.
binutils Programme zur Bearbeitung binärer Dateien, unter anderem der Archiverzeuger ar und strip, das Debugging-Informationen aus Programmen und Bibliotheken entfernt.
glibc-devel Entwicklerdateien der C-Bibliothek.
gettext und gettext-devel Programme und Dateien, um Software mehrsprachig zu übersetzen – notwendig, wenn Sie eine deutsche Programmoberfläche nutzen wollen. Bei manchen Distributionen gibt es kein gettext-devel-Paket; die entsprechenden Dateien enthält bereits gettext.
XFree86-devel (bei manchen Distributionen libxfree86-devel) Entwicklerdateien des grafischen Systems.
libpng-devel Entwicklerdateien der Bibliothek, die Grafiken im PNG-Format darstellt. Fast alle grafischen Anwendungen nutzen diese Bibliothek.
libjpeg-devel Entwicklerdateien der Jpeg-Bibliothek.
zlib-devel Entwicklerdateien der Kompressionsbibliothek zlib.
gtk-devel Entwicklerdateien von gtk; nötig für das Kompilieren von gtk1.x-Anwendungen wie Sylpheed, einem Mailprogramm.
gtk2-devel Entwicklerdateien von gtk2; nötig für das Übersetzen aller gtk2-Programme, z. B. Gimp 2.0.
kdelibs-devel (manchmal auch kdelibs3-devel für KDE 3.x) Entwicklerdateien der KDE-Bibliothek; Mindestvoraussetzung zum Übersetzen von KDE-Programmen.
qt3-devel (bei manchen Distributionen libqt3-devel) Entwicklerdateien der Qt-Bibliothek, die ebenso wie GTK Elemente für die Oberfläche eines Programms bereitstellt; nötig um KDE- und reine Qt-Anwendungen zu übersetzen.
Bei manchen Distributionen (z. B. Debian) tragen die Entwicklerpakete nicht den Zusatz devel, sondern dev.

Eine solche Grundausstattung eliminiert die Ursache der meisten Fehlermeldungen. Tauchen nun noch welche auf, ist ein wenig detektivisches Gespür gefragt.

Wer suchet, der findet

Den wohl häufigsten Typ von configure-Fehlermeldungen zeigt Listing 1.

Listing 1

configure-Fehlermeldung bei fehlendem Entwicklerpaket

[andi@diabolos squaroid-0.60.3]./configure[…]
checking for GTK - version >= 1.2.0… yes
checking for imlib-config… no
checking for gdk_imlib… not found
configure: error: Cannot find gdk_imlib: I NEED IT!

Das Konfigurationsskript beschwert sich hier über eine fehlende gdk_imlib (bei Ihrer Wunschanwendung fehlt stattdessen vielleicht krb5.h oder lidSDL.so). Die Zeile checking for imlib-config... no enthält das Prüfkriterium: configure sucht nach dem Skript imlib-config. Da es das nicht findet – no –, kommt es zu dem Schluss, dass es gdk_imlib auf dem System nicht gibt (checking for gdk_imlib... not found).

Ob die Datei imlib-config auf Ihrem System tatsächlich fehlt oder configure nur schlecht gesucht hat, erfahren Sie mit locate imlib-config. Alternativ benutzen Sie find [4], das jedoch wesentlich länger sucht, da es nicht auf eine Datenbank zurückgreift.

Verläuft die Suche ergebnislos, fehlt die Datei also tatsächlich, gilt es, sie nachzuinstallieren. Aber wie erfährt man, in welchem der unzähligen Distributionspakete sie sich befindet? Unter Mandrake und Suse Linux ist das dank der mitgelieferten Tools ein Kinderspiel: Wer Mandrake verwendet, tippt den Befehl urpmf imlib-config ein. Der Paketverwalter durchforstet daraufhin seine Datenbank und zeigt Ihnen, welche Dateien imlib-config enthalten und in welchem Paket sie stecken (Abbildung 2). Ein zusätzliches urpmf gdk_imlib verrät, dass auch die Entwicklerdateien im Paket libimlib1-devel liegen.

Abbildung 2: Unter Mandrake sucht "urpmf" in einer Datenbank, die eine Dateiliste für alle distributionseigenen RPM-Pakete enthält.Unter Suse Linux greifen Sie auf pin zurück. Beim ersten Aufruf fordert es das Installationsmedium an, um die Archivdatei mit der Paketübersicht auf die Festplatte zu kopieren. Dieses Mal müssen Sie sich daher als Administrator authentifizieren. Danach verrät Ihnen der Aufruf pin imlib-config, dass das gleichnamige Paket die Datei enthält. pin gdk_imlib liefert imlib-devel als Treffer. Unter Suse Linux installieren Sie diese beiden Pakete, damit configure nicht mehr abbricht.

Schwerer haben es alle, die die Personal-Version von Suse oder Red Hat Linux verwenden. Red Hat bringt gar kein Programm mit, mit dem man in der Dateiliste noch nicht installierter Pakete suchen kann. Bei Suse Personal führt die Suche nach Entwicklerdateien meistens ins Leere, da die nötigen Pakete nicht auf den CDs dabei sind.

Eine Alternative für diese Fälle bietet die Suchmaschine für RPM- und Debian-Pakete unter [2]. Das Formular fahndet auch nach einzelnen Dateien und zeigt die Pakete an, die sie enthalten (Abbildung 3). Debianer werden zudem unter http://packages.debian.org/ fündig.

Abbildung 3: Rpmseek.com sucht nicht nur nach Paketen, sondern akzeptiert auch Dateinamen als Suchbegriff.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • deskTOPia: idesk
    Auf den Programmstart per Mausklick müssen Nutzer einfacher Fenster-Manager meist verzichten. Idesk schafft Abhilfe und verpasst ihrem Desktop nebenbei eine Schönheits-OP.
  • Gnome selbst kompilieren mit Garnome
    Fertige Pakete für die neue Gnome-Version gibt es bisher für die wenigsten Distributionen. Als Ersatz hilft das Skript Garnome beim Selbstkompilieren; damit machen Sie sich unabhängig vom Distributor.
  • GIMP aus dem Git-Repository installieren
  • Mpeg Menu System V2
    Linux und Multimedia, das ist nicht immer eine glückliche Verbindung. Wir stellen das Mpeg Menu System vor, das verspricht, Filme und Musik in vielen Formaten abzuspielen – sogar ohne KDE & Co.
  • Grafische Arbeitsumgebung jenseits von KDE und Gnome
    Es muss nicht immer KDE oder Gnome sein: Mit Xfce steht den Liebhabern der grafischen Arbeitsumgebungen eine vielversprechende Desktop-Umgebung zur Verfügung, die nicht nur schlank und schnell ist, sondern auch über zahlreiche Tools verfügt. Dieser Artikel nimmt den Neuling unter den Desktop Environments genauer unter die Lupe.
Kommentare

Infos zur Publikation

LU 10/2016: Kryptographie

Digitale Ausgabe: Preis € 0,00
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

zweites Bildschirm auf gleichem PC einrichten
H A, 30.09.2016 19:16, 2 Antworten
Hallo, ich habe Probleme mein zweites Bildschirm einzurichten.(Auf Debian Jessie mit Gnome) Ich...
Probleme mit MPC/MPD
Matthias Göhlen, 27.09.2016 13:39, 2 Antworten
Habe gerade mein erstes Raspi Projekt angefangen, typisches Einsteigerding: Vom Raspi 3B zum Radi...
Soundkarte wird erkannt, aber kein Ton
H A, 25.09.2016 01:37, 6 Antworten
Hallo, Ich weiß, dass es zu diesem Thema sehr oft Fragen gestellt wurden. Aber da ich ein Linu...
Scannen nur schwarz-weiß möglich
Werner Hahn, 20.09.2016 13:21, 2 Antworten
Canon Pixma MG5450S, Dell Latitude E6510, Betriebssyteme Ubuntu 16.04 und Windows 7. Der Canon-D...
Meteorit NB-7 startet nicht
Thomas Helbig, 13.09.2016 02:03, 4 Antworten
Verehrte Community Ich habe vor Kurzem einen Netbook-Oldie geschenkt bekommen. Beim Start ersch...