Programme unter Linux bestehen nicht nur aus ihren eigenen Binärdateien. Sie nutzen zusätzlich Shared Libraries (gemeinsam genutzte Bibliotheken), die Funktionen bereitstellen. Diese Bibliotheken sparen Speicherplatz, vereinfachen Updates und sind ein zentraler Bestandteil des Linux-Systems. In der LPIC-1-Prüfung ist es wichtig zu verstehen, wie man Shared Libraries findet, verwaltet und Fehler löst.
Grundlagen zu Shared Libraries
- Statische Bibliotheken: werden beim Kompilieren in das Programm eingebunden (
.a-Dateien) - Dynamische Bibliotheken (Shared Libraries): werden zur Laufzeit geladen (
.so-Dateien)
Beispiel: Ein Programm, das mathematische Funktionen nutzt, greift auf libm.so zurück. Dadurch muss der Code nicht in jeder Anwendung enthalten sein.
Wichtige Befehle
- ldd – zeigt die von einem Programm genutzten Shared Libraries
- ldconfig – aktualisiert den Cache der verfügbaren Bibliotheken
- ld.so.cache – Cache-Datei mit bekannten Bibliotheken
ldd /bin/ls
ldconfig -p | grep ssl
sudo ldconfig
Bibliothekspfade
/lib,/usr/lib– Standardpfade/etc/ld.so.conf– Konfigurationsdatei für zusätzliche Pfade/etc/ld.so.conf.d/– Verzeichnis für einzelne KonfigurationsdateienLD_LIBRARY_PATH– Umgebungsvariable für temporäre Pfade
# Temporär Bibliothekspfad hinzufügen
export LD_LIBRARY_PATH=/opt/mylibs:$LD_LIBRARY_PATH
Fehlerdiagnose
- Fehler: „error while loading shared libraries: libXYZ.so: cannot open shared object file“
- Lösung: Prüfen mit
ldd, Pfade ergänzen, Cache mitldconfigaktualisieren
Lerneinheit – Übungsfragen im LPIC-Stil
Frage 1 (Einzelauswahl)
Welcher Befehl zeigt die von /bin/ls genutzten Shared Libraries an?
A) lsmod
B) ldd
C) ldconfig
D) strings
Frage 2 (Mehrfachauswahl)
Welche Dateien/Verzeichnisse enthalten Informationen zu Library-Pfaden?
A) /etc/ld.so.conf
B) /etc/ld.so.conf.d/
C) /etc/fstab
D) /lib und /usr/lib
Frage 3 (Befehlseingabe)
Zeige den Cache der bekannten Bibliotheken an und filtere nach „ssl“.
Frage 4 (Einzelauswahl)
Welche Umgebungsvariable kann genutzt werden, um zusätzliche Library-Pfade temporär zu setzen?
A) PATH
B) LIBPATH
C) LD_LIBRARY_PATH
D) PKG_CONFIG_PATH
Frage 5 (Mehrfachauswahl)
Welche Aufgaben erfüllt ldconfig?
A) Baut den Library-Cache neu auf
B) Listet bekannte Bibliotheken auf
C) Lädt Kernel-Module
D) Berücksichtigt /etc/ld.so.conf
Lösungen & Begründungen
Frage 1: B) ldd. Es zeigt die Abhängigkeiten von Libraries für ein Binary.
Frage 2: A), B), D). /etc/fstab ist für Dateisysteme zuständig, nicht Libraries.
Frage 3 (Musterlösung):
ldconfig -p | grep ssl
Frage 4: C) LD_LIBRARY_PATH. Damit lassen sich temporäre Pfade angeben.
Frage 5: A), B), D). Kernel-Module haben mit ldconfig nichts zu tun.
Mini-Lernkarte
- Befehle: ldd, ldconfig, export LD_LIBRARY_PATH
- Dateien: /etc/ld.so.conf, /etc/ld.so.conf.d/, /lib, /usr/lib
- Cache: /etc/ld.so.cache
- Fehler: „cannot open shared object file“ → Pfade/Cache prüfen
Fazit
Shared Libraries sind ein zentraler Bestandteil von Linux. Mit ldd und ldconfig können Administratoren Abhängigkeiten prüfen und Fehler beheben. Das Wissen über Bibliothekspfade und den Cache ist sowohl prüfungsrelevant für LPIC-1 als auch praktisch unverzichtbar im Alltag.
