Gelegentlich finden Sie möglicherweise ein Paket, das nur als Quellcode verfügbar ist. Um es nutzen zu können, müssen Sie es auf Ihrem System kompilieren und installieren. Diese Lektion führt Sie durch den üblichen Prozess, wie man aus Quellcode kompiliert.
Vorbereitung Ihres Systems
Bevor Sie etwas kompilieren können, benötigen Sie die notwendigen Werkzeuge. Auf Debian-basierten Systemen wie Ubuntu können Sie diese mit einem einzigen Befehl installieren.
sudo apt install build-essential
Das Paket build-essential installiert eine Reihe von Softwareentwicklungswerkzeugen, einschließlich des GCC-Compilers und des make-Dienstprogramms, die für die Kompilierung unerlässlich sind.
Nach der Installation der Werkzeuge entpacken Sie den Inhalt des Quellcode-Pakets, was typischerweise eine .tar.gz-Datei ist.
tar -xzvf package.tar.gz
Bevor Sie fortfahren, überprüfen Sie immer, ob sich im entpackten Verzeichnis eine README- oder INSTALL-Datei befindet. Diese Dateien enthalten oft spezifische Anweisungen oder Abhängigkeiten, die für dieses spezielle Paket erforderlich sind.
Der Standard-Build-Prozess
Obwohl verschiedene Entwickler unterschiedliche Build-Systeme wie cmake verwenden mögen, beinhaltet die traditionellste Methode einen dreistufigen Prozess. Das Verständnis davon ist grundlegend, um zu lernen, wie man Quellcode erstellt.
Führen Sie zuerst das configure-Skript aus. Dieses Skript prüft Ihr System auf alle notwendigen Abhängigkeiten und Bibliotheken, die die Software benötigt, um korrekt zu bauen und ausgeführt zu werden.
./configure
Das Präfix ./ weist die Shell an, das Skript aus dem aktuellen Verzeichnis auszuführen. Wenn das Skript fehlende Abhängigkeiten meldet, müssen Sie diese installieren, bevor Sie fortfahren.
Als Nächstes führen Sie den Befehl make aus. Dieser Befehl liest eine Datei namens Makefile im Verzeichnis, die eine Reihe von Regeln enthält, wie der Quellcode in ausführbare Programme kompiliert wird.
make
Schließlich, um die Software auf Ihrem System zu installieren, würden Sie typischerweise ausführen:
sudo make install
Dieser Befehl kopiert die kompilierten Dateien in die entsprechenden Systemverzeichnisse und macht die Software zur Nutzung verfügbar.
Ein besserer Weg zur Installation
Obwohl sudo make install funktioniert, hat es einen erheblichen Nachteil: Es registriert die Software nicht beim Paketmanager Ihres Systems. Dies erschwert das Nachverfolgen, Aktualisieren oder saubere Deinstallieren des Pakets zu einem späteren Zeitpunkt.
Ablösung ist die Verwendung von checkinstall. Dieses Werkzeug führt den Installationsprozess aus, aber anstatt Dateien direkt zu kopieren, erstellt es ein natives Systempaket (wie eine .deb-Datei unter Debian/Ubuntu) und installiert dieses.
sudo checkinstall
Die Verwendung von checkinstall integriert die kompilierte Software in Ihr Paketverwaltungssystem. Das bedeutet, Sie können sie später einfach mit apt oder dpkg entfernen, genau wie jedes andere Paket, das Sie aus den offiziellen Repositories installiert haben. Aus diesem Grund sollten Sie checkinstall immer make install vorziehen.
Um ein mit make install installiertes Paket zu deinstallieren, müssten Sie zurück in das Quellverzeichnis navigieren und sudo make uninstall ausführen, aber dies ist nicht immer zuverlässig.