EMZETT.
Login

Abhängigkeiten und Bibliotheken

Kurz: Fast kein Programm besteht allein. Es nutzt gemeinsame Bibliotheken (Dateien .so unter Linux, .dll unter Windows). Die Pakete deklarieren diese Abhängigkeiten, damit der Paketmanager sie mitinstalliert.

Genauer: Gemeinsame Bibliotheken sparen Platz und erlauben Sicherheitsupdates an einer Stelle. Problem: Zwei Programme brauchen unterschiedliche Versionen derselben Bibliothek („Dependency Hell“).

Im Detail

  • glibc: Die GNU-C-Bibliothek, Grundlage fast aller Programme. Alpine nutzt stattdessen musl (kleiner, nicht überall kompatibel).
  • Anzeigen: ldd /usr/bin/vlc listet benötigte Bibliotheken. Fehlt eine, erscheint „error while loading shared libraries“.
  • Statisch gelinkt: Eine Datei, die alles enthält (z. B. viele Go-Programme). Größer, aber ohne Abhängigkeiten.
  • Lösungen: Flatpak/Snap (eigene Laufzeit), Container, Nix (jede Version getrennt).
  • Versionierung: Bibliotheken tragen Versionsnummern (libssl.so.3). Wichtige Bibliotheken: glibc, OpenSSL, zlib, libstdc++, GTK, Qt, libc++, ffmpeg.
  • Aufräumen: apt autoremove, dnf autoremove, pacman -Rns.

Siehe auch: Flatpak, Snap und AppImage, Wichtige Pakete im Linux-Basissystem