printf ist natürlich eine sehr einfach Funktion. Es gibt auch viel kompliziertere Funktionen, die z. B. die Arbeit mit den Fenstern des X-Window-Systems ermöglichen. Da diese Funktionen natürlich von jedem X-Window-Programm benötigt werden, ist es von Vorteil, wenn sich die Programme diese Bibliotheken gemeinsam nutzen könnten. Der erste Schritt dahin ist, daß die Bibliotheksfunktion nicht statisch in das Programm eingebunden werden, sondern dynamisch verlinkt werden. D. h. das Programm verweist nur auf die Funktion in der Bibliothek. Wenn es nun eine Trennung von Programm und Bibliothek gibt, können jetzt mehrere Programme auf die gleichen Bibliotheken verweisen. Diese Bibliotheken werden als Shared Libraries bezeichnet. Für Windows-Jünger: Die Shared Libraries sind in ihrem Konzept mit den MS-Windows-DLLs (Dynamic Link Libraries) zu vergleichen.
Der Nachteil dieser dynamischen Bibliotheken liegt darin, daß diese natürlich installiert sein müssen, wenn ein Programm laufen soll. Um zu überprüfen welche Bibliotheken ein Programm braucht, wird das Tool ldd (14.2.2) verwendet. Die Übersicht über die installierten bzw. im System registrierten Dateien liefert der Befehl ldconfig (14.2.3), der auch für das Update der Liste verantwortlich ist.
Die dynamische Einbindung von Bibliotheken bietet sich zumeist bei großen Programmen an, die komplexe Standardfunktionen benötigen. Je kleiner und rudimentärer das Programm ist, desto besser ist eine statische Einbindung der Bibliotheksfunktionen.
Die Bibliotheken befinden sich meistens in den speziell dafür vorgesehenen Verzeichnissen. Typische Bibliotheksverzeichnisse sind /lib, /usr/lib, /usr/local/lib, /usr/X11R6/lib und /opt/lib. Die letzte Ziffer im Namen der Bibliothek ist die Hauptversionsnummer. Oft handelt es sich hierbei aber nur um einen Link, der auf die tatsächlich installierte Version zeigt.
tapico@defiant:~> ls -lG /lib/ld* -rwxr-xr-x 1 root 94543 Sep 20 05:52 /lib/ld-2.2.4.so lrwxrwxrwx 1 root 11 Nov 22 15:53 /lib/ld-linux.so.2 -> ld-2.2.4.so
Als Anwender werden sie mit den Bibliotheken nur dann konfrontiert, wenn Sie fehlen. In den meisten Fällen tritt ein solches Problem nur dann auf, wenn Sie ein Programm nachträglich installieren, das nicht von der Distribution stammt. So besitzen z. B. die Konfigurationsprogramme yast und yast2 von SuSE die Möglichkeit andere benötigte Programmpakete wie z. B. Bibliotheken automatisch mit für die Installation auswählen zu lassen. Es kann vorkommen, daß neuere Programmversionen auch neuere Bibliotheken benötigen, wie es auch vorkommen kann, daß ältere Programme mit neueren Bibliotheken Probleme bekommen.
Als erste Hilfe bei Problemen bietet sich der Befehl ldd (14.2.2) an, um überhaupt festzustellen, welche Bibliotheken benötigt werden.