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
 

Ä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…
  • Der Linux-Gral
    Für bestimmte Hardware kommen Sie nicht darum herum, selbst nach Treibern zu suchen und diese zu installieren. Dieser Artikel zeigt Ihnen die wichtigsten Schritte und erklärt, was beim Treiber-Kompilieren genau geschieht.
Kommentare

Infos zur Publikation

title_2014_09

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...