Home / LinuxUser / 2004 / 06 / configure-Fehlermeldungen entschlüsseln

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Fehler-Fahnder

configure-Fehlermeldungen entschlüsseln

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

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

12247 Hits
Wertung: 65 Punkte (6 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...