Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:programme_selbst_kompilieren

Programme selbst kompilieren (Linux)

Normalerweise werden die Pakete einer Linux-Distribution von dem Maintainer des Paketes gebaut und von der Distribution zur Verfügung gestellt. Die Programme können jedoch auch direkt aus den Quelltexten kompiliert werden. Ich werde dies am Beispiel des Pakets coreutils einmal zeigen. Darin sind viele wichtige Befehle wie ls oder date enthalten.

Generell läuft der Prozess immer nach dem folgenden Schema ab:

  1. Quelltext herunterladen und entpacken
  2. configure für die Konfiguration ausführen
  3. make kompiliert den Quelltext in ausführbare Programme
  4. sudo make install kopiert die fertigen Programme an die richtige Stelle.

Herunterladen und Entpacken

Zunächst werden die Quellen heruntergeladen und entpackt.

wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.24.tar.xz
tar xf coreutils-8.24.tar.xz 

Konfiguration

In der Datei INSTALL oder README wird beschrieben, wie das Paket gebaut werden muss. Dies ist nicht ganz einheitlich und funktioniert immer etwas anders. Es hat sich jedoch bewährt, die Programme configure (Konfiguration) und make (Kompilieren und Installieren) für diesen Prozess zu nutzen.

Der Befehl configure untersucht das aktuelle System und erstellt ein Skript, mit dessen Hilfe make anschließend den Quelltext in ein lauffähiges Programm übersetzten kann. Mit der Option --prefix kann das Ziel der erstellen Binärdateien angegeben werden.

cd coreutils-8.24/
less INSTALL
./configure --prefix=/home/bakera/tmp/coreutils/build

Kompilieren

Nun ist der Weg frei für die Erstellung der Programme. Die Quelltexte werden nun in ausführbare Programme übersetzt.

make

Installation

Der folgende Befehl kopiert schließlich die Binärdateien an die richtige Stelle.

make install

Nun können wir in das Zielverzeichnis wechseln und die Programme testen.

cd ../build/
./bin/ls 
./bin/date 

Weitere Informationen

Weitere ausführliche Informationen bieten die Dokumentation von Ubuntu und ein Artikel des ubuntuusers-Wiki. Das folgende Video zeigt den Prozess noch einmal.

Übungen

Und jetzt bist du an der Reihe.

  1. An welcher Stelle befinden sich die Befehle ls und date im Dateisystem?1)
  2. Welche Versionen sind jeweils installiert?
  3. Vollziehe die obigen Schritte selbst nach und kompiliere das Paket coreutils in der aktuellen Version.
    Eventuell werden Fehlermeldungen angezeigt, weil einige Programme fehlen. Prüfe, ob das Paket build-essential bereits installiert ist.
  4. Nun weißt du, wie man ein Programm aus dem Quelltext übersetzen und installieren kann. Suche jetzt nach einem anderen Paket und übersetze es direkt aus den Quellen. Die Pakete von gnu.org sind ein erster guter Anlaufpunkt.
  5. Dokumentiere dein Vorgehen.
  6. Für Profis: Linux From Scratch ist eine sehr ausführliche Anleitung, die erklärt, wie man ein ganzes Linux-System vollständig aus den Quelltexten erstellt. Es existiert auch eine deutsche Version aus dem Jahr 2008. Der Prozess dauert eine ganze Weile, man lernt dabei allerdings auch enorm viel.
1) Tipp: man which
schule/programme_selbst_kompilieren.txt · Zuletzt geändert: 19.04.2017 08:39 (Externe Bearbeitung)