Linux-Software von Source installieren

In den letzten Jahren hat sich die Installation von Software unter Linux erheblich vereinfacht. Heute unterstützen die meisten Linux-Systeme Anwendungen zum Paket-Management, wie z.B. RPMs, wodurch der Installationsvorgang wesentlich erleichtert wird. Dennoch sollte man die Bedeutung eingehender Kenntnisse der Installation von Quell-Paketen auf Linux nicht unterschätzen.

Auch wenn sie sich in der Benutzung etwas aufwändiger zeigen, zählen die Source-Installationen nach wie vor zu den wichtigsten Vorteilen von Linux. Mit ihnen können Sie Installationen von Software flexibel an Ihre Bedürfnisse anpassen, statt von den Präferenzen der Entwickler vorkonfigurierter Pakete abhängig zu sein. Außerdem existieren noch immer Software-Programme, die nur als Quell-Pakete erhältlich sind. Aus diesen Gründen ist es unerlässlich, zu wissen, wie man Source-Installationen von Software unter Linux durchführt. In diesem Tutorium werden Sie mit den Grundlagen von Source-Installationen vertraut gemacht.

Wo findet man Quellcodes?
Es gibt viele Möglichkeiten, Quellcode-Pakete zu erhalten, je nach Art der Software, die Sie suchen. Bei einem weit verbreiteten Programm wie z.B. Sendmail können Quell-Pakete von kommerziellen Websites heruntergeladen werden (in diesem Fall von sendmail.org) oder auch von zahlreichen gespiegelten FTP- und HTTP-Sites auf der ganzen Welt. Kleinere Pakete sind dagegen häufig nur auf der Entwickler-Website verfügbar.

Für die meisten Pakete existieren zahlreiche mögliche Downloads, von für spezielle Systeme entwickelten Paketen wie RPMs oder DEBs bis hin zu vorkompilierten Binär-Dateien und natürlich dem Quellcode selbst. Die Quellcodes sind meist in so genannte „tarballs“ komprimiert. Dabei handelt es sich ganz einfach um ein gebräuchliches Verfahren für das Packen von Codes. Diese Dateien enden gewöhnlich mit der Erweiterung .tar.gz.

Da das Programm tar selbst über das reine Packen hinaus keine Komprimierung vornimmt, greift eine .tar-Datei zur Zusammenfassung der Daten häufig auf gzip zurück, weshalb am Ende des Dateinamens die Erweiterung .gz hinzugefügt wird. Diese Dateien können mit dem Befehl tar xpfz entpackt werden. Die meisten Entwickler haben hierfür bereits eine Verzeichnis-Struktur festgelegt, so dass Sie diese nicht mehr manuell einrichten müssen. Dennoch ist es immer ratsam, die Dateien in ein leeres Verzeichnis zu entpacken, für alle Fälle.

Wenn ich beispielsweise ein Quell-Paket für Sendmail herunterladen möchte, erstelle ich zunächst ein Verzeichnis wie z.B. /usr/local/sendmail. Dann lade ich das Quell-Paket sendmail.8.12.0.tar.gz in dieses Verzeichnis herunter und entpacke es, indem ich vom genannten Verzeichnis aus tar xpfz sendmail.8.12.0.tar.gz ausführe.

Beachten Sie auch, dass möglicherweise einige Web-Browser, wie z.B. Netscape, die Datei automatisch entpacken, wenn sie die Erweiterung .gz erkennen. Sollten Sie in Ihrem Download-Verzeichnis jedoch nur eine .tar-Datei vorfinden, ist dies kein Grund zur Sorge. Führen Sie einfach tar xpf statt tar xpfz aus, um die Dateien zu extrahieren.

Source-Installation
Nachdem Sie die Quell-Dateien entpackt haben, sollten Sie sich zunächst die Dateien readme und install ansehen, bevor Sie mit der eigentlichen Installation beginnen. Obwohl die meisten Quell-Pakete dieselben Befehle verwenden, könnten Sie beim Lesen dieser Dateien doch auf grundlegende Abweichungen stoßen. Beispielsweise enthalten einige Software-Programme ein Installations-Skript, das Ihnen fast die gesamte Arbeit abnimmt. Das Lesen dieser Dateien vor der Installation erweist sich daher auf lange Sicht gesehen häufig als zeitsparend.

Üblicherweise werden bei einer Source-Installation zunächst die folgenden Befehle aus dem Paket-Verzeichnis ausgeführt:
./configure
make
make install

Das Konfigurations-Skript durchsucht Ihr System, um vor der Installation sicherzustellen, dass alle erforderlichen Komponenten vorhanden sind. Es prüft auf Elemente wie einen kompatiblen Compiler und erforderliche Bibliotheken. Sollte das Fehlen einer Komponente festgestellt werden, zeigt das Skript eine Fehlermeldung an. Übrigens erstellt dieses Skript gewöhnlich eine Datei mit dem Namen config.cache, in der Informationen zu vorangegangenen Installationsversuchen gespeichert werden. Falls Sie also ein fehlendes Element installieren mussten und nun das Konfigurations-Skript erneut ausführen möchten, verwenden Sie den Befehl rm, um zunächst die Datei config.cache zu entfernen. Auf diese Weise können Sie sichergehen, dass das Konfigurations-Skript erneut alle Komponenten prüft.

Hier ein Auszug aus der Ausführung eines Beispielskripts:
# ./configure
creating cache ./config.cache
checking for gcc… gcc
checking whether the C compiler (gcc ) works… yes
checking whether the C compiler (gcc ) is a cross-compiler… no
checking whether we are using GNU C… yes
checking whether gcc accepts -g… yes
checking for a BSD compatible install… /usr/bin/install -c
checking for socket in -lsocket… no
checking for strlcpy… no
checking for strlcat… no
checking for arc4random… no
checking for MD5Update… no
checking for warnx… yes
checking for libpcap… yes
checking for ANSI C header files… yes
checking for sys/ioctl.h… yes
checking for sys/time.h… yes
updating cache ./config.cache
creating ./config.status
creating Makefile
creating config.h

Beachten Sie, dass nicht alle Optionen mit einem yes bestätigt werden, wodurch das Skript jedoch nicht zwangsläufig angehalten wird. Das Skript teilt Ihnen mit, wenn ein erforderliches Element fehlt.

Der nächste Befehl, make, kompiliert schließlich den Quellcode in eine ausführbare Binär-Datei, die auf Ihren System installiert werden kann. Dieser Vorgang kann je nach Größe des Quellcodes und je nach Geschwindigkeit Ihres System einige Zeit dauern. Wenn Sie je einen Kernel, vor allem einen der neueren, kompiliert haben, dann wissen Sie, wovon ich spreche.

An dieser Stelle treten am häufigsten Fehler auf. Denken Sie daran, dass trotz aller Bemühungen seitens der Entwickler, ihren Quellcode so breit einsetzbar wie möglich zu gestalten, derart viele Variationen von Linux existieren, dass ein Code nur schwerlich auf alle möglichen Gegebenheiten ausgelegt sein kann. Sollten Sie beispielsweise Schwierigkeiten mit den Bibliotheks-Dateien haben, überprüfen Sie, ob Sie die vollständig entwickelte Version Ihrer Linux-Distribution installiert haben. Dieser Schritt ist der komplizierteste des gesamten Installationsvorgangs, doch hier können Sie auch am meisten lernen. Der Quellcode sucht vielleicht am falschen Punkt, oder er sucht nach einer älteren Bibliothek, oder er könnte eine neuere Version einer Bibliothek benötigen.

Sollten Fehlermeldungen auftreten, finden Sie die zur Installation der Software erforderlichen fehlenden Elemente meist auf der Entwickler-Website oder der Website Ihrer speziellen Linux-Distribution. Auch eine Suche mit Google und Yahoo kann sich als sehr sinnvoll erweisen, insbesondere mit Hinblick auf Einträge in Newsgroups. Wahrscheinlich hatte ein anderer Benutzer bereits dasselbe Problem, so dass irgendwo im Internet dessen Lösung auf Sie wartet.

Anschließend wird über den Befehl make install das kompilierte Produkt des Quellcodes, gewöhnlich eine Binär-Datei sowie eventuell einige Bibliotheken, auf Ihrem System installiert. Dies bedeutet im Grunde nur, dass die Dateien in die entsprechenden Verzeichnisse kopiert werden, so dass sie Ihrem System zur Verfügung stehen. Diese Verzeichnisse können üblicherweise während der Konfiguration festgelegt werden. Sollten Sie nicht sicher sein, wohin die Dateien durch diesen Befehl kopiert wurden, können Sie den Dateien readme und install die entsprechenden Standard-Einstellungen entnehmen.

Sie können auch die vom Konfigurations-Skript erstellte Datei makefile ansehen, um festzustellen, welche Angaben dort gespeichert sind. Standard-Verzeichnisse hierfür sind gewöhnlich /usr/local/bin, /usr/local/sbin und /usr/local/lib. Doch auch dies hängt von Ihrem System ab, so dass Sie eventuell auch hier einige Punkte erst überprüfen müssen.

Wahrscheinlich benötigen Sie für den abschließenden Befehl einen Root-Zugang, da Sie möglicherweise zum Kopieren von Dateien in bestimmte Verzeichnisse nicht berechtigt sind. Alternativ dazu kann auch der ganze Vorgang im Root-Modus ausgeführt werden. Aber vielleicht wollen Sie die Skripts aus Sicherheitsgründen auch zuerst überprüfen. Denken Sie daran, dass jeder von einem Skript im Root-Modus ausgeführte Befehl dieselben Auswirkungen wie ein vom Root in die Befehlszeile eingegebener Befehl hat. Dies spielt zwar vermutlich keine Rolle, vor allem nicht bei gängigen Paketen, die von bekannten Adressen heruntergeladen wurden – dennoch sollten Sie diesen Aspekt im Hinterkopf behalten.

Schlussbemerkung
Die Möglichkeit zum Herunterladen und Installieren von Programmen aus dem Quellcode stellt einen der wichtigsten Vorteile von Linux dar. Auch wenn Sie kein Software-Programmierer sind, können Sie dennoch auf diese Weise bestimmen, welche Optionen durch die Source-Installation in Ihre neue Software kompiliert werden. Für manche Pakete ist nur eine Source-Installation möglich, und in vorkompilierten Paketen sind häufig nicht alle Funktionen aktiviert. Daher sollte ein System-Administrator unbedingt in der Lage sein, Source-Installationen auszuführen.

© 2002 TechRepublic, Inc.

ZDNet.de Redaktion

Recent Posts

Kostenloser Dekryptor für ShrinkLocker

Mit dem Dekryptor von Bitdefender können Opfer von Attacken mit der Shrinklocker-Ransomware Dateien wiederherstellen.

10 Stunden ago

Malwarebytes warnt vor Betrugsmaschen beim Weihnachtseinkauf

In der Vorweihnachtszeit ist vor allem Malvertising auf dem Vormarsch. Cyberkriminelle locken Nutzer über schädliche…

11 Stunden ago

Bedrohungsindex: Deutliche Zunahme von Infostealern im Oktober

Dazu trägt unter der Infostealer Lumma-Stealer bei. Hierzulande dominiert der Infostealer Formbook die Malware-Landschaft.

1 Tag ago

Chrome 131 schließt zwölf Sicherheitslücken

Eine schwerwiegende Anfälligkeit hebelt die Sicherheitsfunktion Seitenisolierung auf. Betroffen sind Chrome für Windows, macOS und…

1 Tag ago

DeepL Voice mit KI für Sprach- übersetzungen

DeepL Voice ermöglicht Live‑Übersetzung von Meetings und Gesprächen in 13 Sprachen.

1 Tag ago

November-Patchday: Microsoft schließt Zero-Day-Lücken in Windows

Betroffen sind Windows und Windows Server. Microsoft patcht aber auch Schwachstellen in Excel, Word und…

1 Tag ago