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/vlclistet 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