2. CheckInstall

Wie eingangs bereits erwähnt, lautet die Befehlsfolge zur manuellen Übersetzung und Installation eines GNU Autoconf konformen Programms aus dem Quellcode folgendermaßen:

./configure && make && make install

An dieser Stelle kommt nun CheckInstall ins Spiel und ersetzt make install durch den Befehl checkinstall. Die beiden anderen Kommandos bleiben davon unberührt und werden, ihrem Zweck entsprechend, weiterhin wie gewohnt genutzt. Die Befehlsfolge unter Verwendung des Tools CheckInstall lautet also wie folgt:

./configure && make && checkinstall

Das Kommando checkinstall startet aber per Default trotzdem make install und beobachtet daraufhin sämtliche Schreibvorgänge, die durch die Installation getätigt werden. Zu diesem Zweck verwendet CheckInstall das Programm Installwatch [3], welches ursprünglich von Pancrazio de Mauro geschrieben wurde. Nachdem make install seinen Durchlauf erfolgreich beendet hat, generiert CheckInstall wahlweise ein Slackware-, Debian- oder RPM-Paket, installiert dieses über den jeweils eingesetzten Paketmanager und hinterläßt eine Kopie des Pakets im aktuellen Quellverzeichnis oder am standardmäßigen Speicherort der benutzten Distribution. Zudem ist es auch möglich, den Speicherort mittels der Variable PAK_DIR innerhalb der Konfigurationsdatei selbst zu bestimmen. Die besagte Kopie läßt sich dann in der Regel auch, unter Berücksichtigung etwaiger Paketabhängigkeiten, auf anderen Maschinen im Netzwerk installieren, ohne jedesmal aufs Neue kompilieren zu müssen.

CheckInstall macht jedoch nicht zwingend von make install Gebrauch, sondern arbeitet auch problemlos mit anderen Installationsbefehlen zusammen. Lautet das Installationsskript beispielsweise setup.sh sieht der Befehlssatz so aus:

./configure && make && checkinstall setup.sh

Des weiteren besteht die Möglichkeit, CheckInstall mit diversen Optionen zu starten. Das nachfolgende Kommando liefert eine komplette Übersicht aller verfügbarer Optionen, welche wiederum in die Sektionen Install options, Scripting options, Info display options, Package tuning options, Cleanup options und About CheckInstall untergliedert sind:

# checkinstall -h

Wird CheckInstall mit einer dieser Optionen aufgerufen, werden diese vorrangig zu den in der Konfigurationsdatei checkinstallrc definierten Werten behandelt.

Allerdings stößt CheckInstall bei Programmen, welche statisch gegen Bibliotheken gelinkt sind, an seine Grenzen, da es Installwatch dadurch nicht möglich ist, die durch die Installation modifizierten Dateien zu überwachen beziehungsweise aufzulisten und an CheckInstall zu übergeben. Grundsätzlich werden zwei Arten von Programmbibliotheken unterschieden: statisch oder dynamisch gelinkte Bibliotheken. Diese werden durch eine include-Anweisung in ein Programm eingebunden und können dann beliebig aufgerufen werden. Im Gegensatz zu dynamisch gelinkten Programmen besitzen statisch gelinkte bereits alle benötigten Bibliotheksfunktionen und müssen diese nicht mehr zur Laufzeit in den Arbeitsspeicher laden. Weiterhin sind sie unabhängig von den tatsächlich auf dem Zielsystem installierten Bibliotheken, da ein sogenannter Linker die Funktionen der Bibliothek beim Kompiliervorgang mit dem ausführbaren Programm verbindet.