Software Build (GNU)

Es gibt eine Vielzahl von Buildtools die hier nicht installiert werden und auf die nicht eingegangen werden soll. In Linux/Unix Software-Projekten wird jedoch häufig die Tool-Chain des GNU Build System (wiki) genutzt, weshalb diese hier installiert wird und mit ein paar Sätzen unten stehend kurz erläutert werden soll.

In den angesprochenen Linux/Unix Software-Projekten sind für den Build-Prozess neben der Toolchain noch (Standard-) Bibliotheken (z.B. glibc) und deren Header Dateien (wiki) erforderlich. In den Software-Projekten können diese Abhängigkeiten ganz individuell sein. Es lässt sich aber auch ein Subset von Abhängigkeiten identifizieren, der häufig benötigt wird. Neben diesen Subset an Abhängigkeiten sind die hier vorgestellten Entwickler Pakete eine willkürliche Auswahl.

Das build-essential Paket installiert einen minimalen Satz von Tools und Bibliotheken, der benötigt wird um Software zu kompilieren (s.o.). Zu diesem minimalen Satz gehören beispielsweise die

In dem linux-headers-generic Paket sind die Linux Header Dateien (wiki), auch diese werden des öfteren benötigt und sollten installiert werden. Viele Linux/Unix Software-Projekte bauen auf dem GNU Build System (wiki) auf, das unter Debian/Ubuntu mit den folgenden Paketen installiert werden kann.

Installiert (u.a.) die Tools autoscan, autoconf und autoheader. Diese Tools gehören zur GNU autoconf Suite mit der Konfiguratinen erzeugt werden, die es Entwicklern erlauben ihre Implementierungen portabel zu halten, so dass diese auf unterschiedlichen (z.B. Unix/Linux) Platformen kompiliert werden können.

GNU automake ergänzt das Autotool Suite und ermöglicht es, die für den Build-Prozess zuständigen Makefile Dateien ebenfalls portabel zu halten. Das Zusammenspiel von Automake und Autoconf wird in dem Prozessbild von Wikimedia Commons anschaulich dargestellt.

Figure (256px-Autoconf-automake-process.svg.png)

Autoconf / Automake Prozessbild (Wikimedia Commons)

Eine kurze, pragmatisches Einführung zu den Autotools gibt das Autotools Tutorial for Beginners (markuskimius) oder das Kapitel „Build-Systeme Teil 5: GNU Autotools“ im magazin.c-plusplus.net.

Das Paket libtool-bin installiert (u.a.) das Kommando libtools das zu dem GNU Portable Library Tool (kurz: GNU libtool) gehört. Libtool unterstützt bei der Erzeugung einer portablen (nicht auf eine Platform begrenzten) Shared Library (wiki).

Das Paket gettext installiert die GNU gettext Toolchain. Das Zusammenspiel der gettext-Tools wird in dem Prozessbild von Wikimedia Commons anschaulich dargestellt.

Figure (206px-Gettext.svg.png)

GNU gettext (wiki) Prozessbild (Wikimedia Commons)