Konfiguration zur Laufzeit

Mit dem Skript configure erübrigt sich die Handarbeit am Makefile. Es prüft sogar, ob Abhängigkeiten und andere Voraussetzungen erfüllt sind, und es versteht eine Reihe von Optionen. Welche das im Einzelfalle sind, erfahren Sie über das Kommando ./configure --help | less. Die Zeichen ./ vor dem Skript-Aufruf sind wichtig, weil sich die Datei configure nicht in einem Verzeichnis der Umgebungsvariable $PATH liegt (Listing 3).

Listing 3

Die Configure-Optionen

[localhost] $ <B>./configure --help | less<B>
[…]
Optional Features:
  --enable-gpgme          Enable GPGME support
  --disable-pgp           Disable PGP support
  --without-gdbm          Don't use gdbm even if it is available
  --with-slang            Use S-Lang instead of ncurses
[…]

Die optionalen Features gliedern sich häufig in zwei Paare: enable/disable und with/without. So bedeutet bei einem Mail-Programm der Parameter --enable-pop, dass Sie die POP3-Unterstützung freischalten, während --disable-nls einen standardmäßig aktivierten NLS-Support abschaltet.

Die Optionen with/without beziehen sich gerne auf einzubindende Bibliotheken. Ein --with-ssl kompiliert zum Beispiel das Pogramm mit SSL-Unterstützung, die natürlich die Anwesenheit der SSL-Library voraussetzt.

Nach dem ersten Lauf des Shell-Skriptes sehen Sie sehr schnell, ob alle notwendigen Tools und Bibliotheken auf Ihrem System vorhanden sind. Im Beispiel in Listing 4 bemängelt configure das Fehlen der GTK-Entwicklerbibliothek libgtk2.0-dev und bricht seinen Durchlauf ab, ohne ein Makefile zu erzeugen.

Listing 4

Configure bricht ab

[localhost] $ <B>./configure<B>
checking for gcc… gcc
checking for C compiler default output file name… a.out
[…]
checking for gtk+-2.0… no
configure: error: libgtk2.0-dev missing please install libgtk2.0-dev

Jetzt hilft Ihnen ein Frontend zum Paketmanagement Ihrer Distribution weiter, beispielsweise mit einem apt-cache search libgtk. Das von Debian verwendete apt-cache ist nur eine Möglichkeit von vielen. Als Suse-Anwender steht Ihnen für solche Aufgaben das Skript pin zur Verfügung. Nun gilt es, die vermisste Library nachzuinstallieren. Als Debianer genügt Ihnen dazu der Befehl apt-get install libgtk2.0-dev.

Ein Configure-Lauf ohne Optionen kommt selten vor, denn gerade die Optionen des Befehls machen einen Selbstbau interessant. Wie Sie eine Liste der unterschiedlichen Parameter bekommen, wissen Sie inzwischen. Die interessanteste (und vermutlich die meist genutzte) Option lautet --prefix=. Mit Ihr verraten Sie make, in welches Verzeichnis es die Programmdateien kopieren soll. Beispiel: ./configure --prefix=/home/andreas/terminal.

Im obigen Beispiel landen, von der Manpage bis zur Programm, alle Dateien des Terminal-Emulators mrxvt unterhalb des Verzeichnisbaumes /home/andreas/terminal, wie die Ausgabe von make install zeigt:

[localhost] $ <B>make install<B>
[…]
/usr/bin/install -c -m 644 'TIPS↩
' '/home/andreas/terminal/share/↩
doc/mrxvt/TIPS'
[…]
/usr/bin/install -c -m 644 './mr↩
xvt.1' '/home/andreas/terminal/m↩
an/man1/mrxvt.1'
[…]
/usr/bin/install -c 'mrxvt' '/ho↩
me/andreas/terminal/bin/mrxvt'

Das Programm make ruft nun die Befehle aus dem Target install auf und kopiert so die Dateien TIPS, mrxvt.1 und mrxvt gemäß der von Ihnen gewünschten Vorgaben. Die Modus-Option -m für das Programm install ändert die Zugriffsbits [2] der kopierten Dateien. Die gesamte Installation geht über die Bühne, ohne dass Sie in diesem Fall die Rechte des Superusers root brauchen.

Damit Sie zum Start des Terminal-Emulators nicht jedesmal den vollen Verzeichnisnamen /home/andreas/terminal/bin/mrxvt eintippen müssen, nehmen Sie den Pfad in die Umgebungsvariable $PATH auf. Dazu fügen Sie die Zeile PATH=$PATH:/home/andreas/terminal/bin in die Konfigurationsdatei Ihrer Shell ein (beispielweise in der Datei ~/.bashrc). Anschließend laden Sie die neue Konfiguration mit dem Kommando . ~/.bashrc, und mrxvt lässt sich ohne Umstände in der Bash starten.

Wenn das Terminal schon als /usr/bin/mrxvt existiert und sie statt dessen Ihr mrxvt nutzen wollen, dann ändern Sie den Eintrag in PATH=/home/andreas/terminal/bin:$PATH. Jetzt findet die Shell Ihr lokales mrxvt im Heimatverzeichnis vor dem systemweiten /usr/bin/mrxvt.

Aber warum überhaupt sollten Sie als User ein Programm ins Home-Verzeichnis installieren? Einerseits spricht dafür die noch striktere Trennung von Eigenbauten und distributionseigenen Programme. Selbst bei angepassten Pfaden kann make install, dank einer Unaufmerksamkeit des Programmierers, Dateien in Bereiche des Systems kopieren, die unter der Obhut des Paketmanagements stehen. Daneben bietet dieser Weg die Möglichkeit, relativ ungefährdet Programme zu testen, die sich noch im Beta-Stadium befinden.

Ein weiterer Grund, der sich nicht auf Ihr Heimatverzeichnis beschränkt, hat mit der Sicherheit zu tun: Sowohl der Inhalt des Configure-Skripts [4] als auch des Makefiles [3] kann Ihr System ruinieren, wenn make anschließend mit den Befugnissen von root arbeitet und Angaben fehlerhaft sind.

Vermeiden Sie es darum, mit Administrator-Rechten den Einzeiler ./configure && make && make install in die Shell zu tippen – es könnte der letzte Befehl sein, den Ihr Rechner von Ihnen akzeptiert. Die Befehle configure und make gehören in die Hände eines Users. Erst dann kommt root mit make install zum Zuge. Auf diese Weise werden Sie noch lange Freude an Ihrem freien Betriebssystem haben.

Infos

[1] Wiki-Eintrag "Patch": http://www.vdr-wiki.de/wiki/index.php/Patches

[2] Heike Jurzik, Gleiches Recht für alle?, LinuxUser 07/2004, S. 69: http://www.linux-user.de/ausgabe/2004/07/069-zubefehl/

[3] "rm -rf $DIR /" im Makefile: http://www.theparallax.org/dcoul/user2root/stories.shtml

[4] Hintertür im configure-Skript des ICQ-Cients Irssi: http://real.irssi.org/?page=backdoor

LinuxCommunity kaufen

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

Deutschland

Ähnliche Artikel

  • Multimuschel
    Mrxvt ist schlank, wendig, einfach anzupassen und unterstützt mehrere Shell-Sitzungen in einem Terminalfenster.
  • Programme unter Linux kompilieren
  • Mit Make komplexe Aufgaben effizient bearbeiten
    Arbeiten Sie an komplexen Projekten mit mehreren Quelldateien, behält Make den Überblick für Sie. Programmierern, LaTeX-Anwendern oder Systemverwaltern greifen gerne auf dieses nützliche Werkzeug zurück.
  • Installationsprobleme
    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…
  • So beheben Sie Fehler bei der Ausführung von make
    Wenn das configure-Skript fehlerfrei durchgelaufen ist, stehen nur noch make und make install zwischen dem Anwender und der neuen Software. Auch hier steckt der Teufel bisweilen im Detail.
Kommentare

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(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

Brother Drucker DCP-J4120
Achim Zerrer, 09.12.2016 18:08, 0 Antworten
Hallo, ich wollte unter Leap 42.1 den Brother Drucker installieren und dazu das PPD- Datei vom do...
Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...