man which
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:
configure
für die Konfiguration ausführenmake
kompiliert den Quelltext in ausführbare Programmesudo make install
kopiert die fertigen Programme an die richtige Stelle.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
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
Nun ist der Weg frei für die Erstellung der Programme. Die Quelltexte werden nun in ausführbare Programme übersetzt.
make
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 ausführliche Informationen bieten die Dokumentation von Ubuntu und ein Artikel des ubuntuusers-Wiki. Das folgende Video zeigt den Prozess noch einmal.
Und jetzt bist du an der Reihe.
coreutils
in der aktuellen Version. build-essential
bereits installiert ist.man which