Bibliotheken

  • Bibliotheken bündeln Funktionalität

    • n Programme, eine Bibliothek
    • lässt sich leichter aktualisieren
  • Namenskonvention - Beispiel: /lib/libfuse.so.2.8.5

    • lubfuse.so - Name (so == shared object)
    • 2 - Major Version
    • 8 - Minor Version
    • 5 - Patchlevel
  • Statisches/Dynamisches Linken

    • Dynamisch: Linken beim Programmstart (Schlanke Programme)

    • Statisch: Bibliotheken werden beim Compilieren reingelinkt

      • Geschwindigkeitsvorteil, Kompatibilitätsvorteil, aber dann auch fette Binaries
  • ldd - Zeigt Abhängigkeiten von einem Programm zur Bibliothek an:

    ldd /usr/bin/top
        linux-vdso.so.1 =>                          //Lib == Kernel
        libproc-3.2.8.so => /lib/libproc-3.2.8.so
        libncurses.so.5 => /lib/libncurses.so.5
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
        libtinfo.so.5 => /lib/libtinfo.so.5
        /lib64/ld-linux-x86-64.so.2                //zum Starten von top
    
  • Bibliothek verschoben, neue Bibliothek testen, oder mehrere Bibliotheken auf der Platte?!

    • Variable setzen:

      export LD_LIBRARY_PATH=/home/meine/tollen/libs
      
    • Oder dauerhaft/statisch festlegen:

      echo /home/meine/tollen/libs >> /etc/ld.so.conf
      ldconfig
      

    (ldconfig erneuert den Library Cache)