Shared Libraries unter Linux verwalten

Inhaltsverzeichnis

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 Konfigurationsdateien
  • LD_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 mit ldconfig aktualisieren

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.

Andreas Moor
Andreas Moor
@blog@andreas-moor.de

Hallo Fediverse, ich bin Andy!

Hier und auf meiner Website findest du mein akkumuliertes Linux-Sysadmin-Wissen, meine kleinen und größeren Projekte und die Tools, die ich nutze.

Viel Spaß beim stöbern, lesen und lernen! 🧑‍💻

236 Beiträge
16 Folgende