LPIC101/102.3 Shared Libraries verwalten: Unterschied zwischen den Versionen

Aus Foxwiki
Khalilalim (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „''' wichtung:1'''<br> Beschreibung: Kandidaten sollten in der Lage sein, die Shared Libraries zu bestim-men, von denen ausführbare Programme abhä…“
 
Khalilalim (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
Beschreibung:  Kandidaten  sollten  in  der  Lage  sein,  die  Shared  Libraries  zu  bestim-men, von denen ausführbare Programme abhängen, und diese bei Bedarf zu instal-lieren.<br><br>
Beschreibung:  Kandidaten  sollten  in  der  Lage  sein,  die  Shared  Libraries  zu  bestim-men, von denen ausführbare Programme abhängen, und diese bei Bedarf zu instal-lieren.<br><br>


''' Wichtigste Wissensgebiete:'''<br>
 
== Wichtigste Wissensgebiete ==
 
* Shared Libraries identifizieren
* Shared Libraries identifizieren
* die typischen Orte für Systembibliotheken identifizieren
* die typischen Orte für Systembibliotheken identifizieren
Zeile 44: Zeile 46:
  /usr/i386-suse-linux/lib
  /usr/i386-suse-linux/lib
  /usr/local/lib
  /usr/local/lib
Diese  Verzeichnisse  werden  von 
ldconfig
  konsultiert,  um  die  Datei 
/etc/ld.so.cache
aufzubauen. Danach können die neuen Libr
aries vom dynamische
n Linker verwen-
det und bei Bedarf eingebunden werden.
Um den aktuellen Inhalt der Datei
/etc/ld.so.cache
anzuzeigen, verwenden Sie folgen-
des Kommando:
archangel:/ # ldconfig -p | less
1128 libs found in cache `/etc/ld.so.cache'
libzvbi.so.0 (libc6) => /usr/lib/libzvbi.so.0
libzio.so.0 (libc6) => /usr/lib/libzio.so.0
libzio.so (libc6) => /usr/lib/libzio.so
libz.so.1 (libc6) => /lib/libz.so.1
libz.so.1 (libc6) => /usr/lib/libz.so.1
libz.so (libc6) => /usr/lib/libz.so
liby2.so.2 (libc6) => /usr/lib/liby2.so.2
libyui.so.2 (libc6) => /usr/lib/libyui.so.2
... weitere Zeilen wurden abgeschnitten ...

Version vom 31. Oktober 2019, 14:09 Uhr

wichtung:1

Beschreibung: Kandidaten sollten in der Lage sein, die Shared Libraries zu bestim-men, von denen ausführbare Programme abhängen, und diese bei Bedarf zu instal-lieren.


Wichtigste Wissensgebiete

  • Shared Libraries identifizieren
  • die typischen Orte für Systembibliotheken identifizieren
  • Shared Libraries laden


Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

  • ldd
  • ldconfig
  • /etc/ld.so.conf
  • LD_LIBRARY_PATH


Allgemeines

Um Systemressourcen effizient zu verwenden, werden Programme modular aufgebaut. Die eigentliche Aufgabe,die das Programm ausführt, wird im Code des jeweiligen Programms selbst hinterlegt.Funktionen,die andere Programme auch verwenden, werden dynamisch in das laufende Programm eingebunden. Solche Funktionen sind in sogenannten Libraries enthalten.Es wäre z. B. nicht sinnvoll,wenn jedes Programm seine eigene Druckroutine enthalten würde. Stattdessen bindet ein Programm, wenn es drucken muss, dynamisch eine Bibliothek ein, die dann diese Aufgabe ausführt. Durch diese Vorgehensweise werden Speicherressourcen eingespart. Unter Windows finden Sie diese Bibliotheken als Dateien mit der Erweiterung.dll(Dynamic Link Library). Unter Linux heißen die Bibliotheken Shared Libra-ries und haben die Erweiterung.so(SharedObject).Programme, die mit solchen Shared Libraries arbeiten, bezeichnet man als dynami-cally linked, während Programme, die den Code der Shared Libraries in sich selbst tragen, als statically linkedbezeichnet werden.


Verwaltung von Shared Libraries
Um zu identifizieren, von welchen Libraries ein Programm abhängt, können Sie dasTool ldd verwenden. Die Ausgabe des Programms zeigt gleichzeitig die Position der benötigten Libraries im Dateisystem an:

archangel:/ # ldd /usr/bin/grep
  linux-gate.so.1 =>  (0xffffe000)
  libc.so.6 => /lib/tls/libc.so.6 (0x40030000)
  /lib/ld-linux.so.2 (0x40000000)


Wenn Sie neue Bibliotheken auf einem System installieren, benötigen Sie das Programm ldconfig,damit der dynamische Linker diese Bibliotheken auch verwendet. Zu diesem Zweck liest ldconfig die Datei /etc/ld.so.confbzw. alle conf-Dateien im Verzeichnis /etc/ld.so.conf.d ein. Hier sind alle Verzeichnisse aufgelistet, in denen sichdynamische Libraries befinden: archangel:/ # less /etc/ld.so.conf

/usr/X11R6/lib
/usr/i486-linux/lib
/usr/i486-linux-libc5/lib=libc5
/usr/i486-linux-libc6/lib=libc6
/usr/i486-linuxaout/lib
/usr/i386-suse-linux/lib
/usr/local/lib

Diese Verzeichnisse werden von ldconfig

 konsultiert,  um  die  Datei  

/etc/ld.so.cache aufzubauen. Danach können die neuen Libr aries vom dynamische n Linker verwen- det und bei Bedarf eingebunden werden. Um den aktuellen Inhalt der Datei /etc/ld.so.cache

anzuzeigen, verwenden Sie folgen-

des Kommando: archangel:/ # ldconfig -p | less 1128 libs found in cache `/etc/ld.so.cache' libzvbi.so.0 (libc6) => /usr/lib/libzvbi.so.0 libzio.so.0 (libc6) => /usr/lib/libzio.so.0 libzio.so (libc6) => /usr/lib/libzio.so libz.so.1 (libc6) => /lib/libz.so.1 libz.so.1 (libc6) => /usr/lib/libz.so.1 libz.so (libc6) => /usr/lib/libz.so liby2.so.2 (libc6) => /usr/lib/liby2.so.2 libyui.so.2 (libc6) => /usr/lib/libyui.so.2 ... weitere Zeilen wurden abgeschnitten ...