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ä…“
 
K Textersetzung - „bzw.  “ durch „bzw. “
 
(30 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
''' wichtung:1'''<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 =


''' Wichtigste Wissensgebiete:'''<br>
# Shared Libraries identifizieren
* Shared Libraries identifizieren
# die typischen Orte für Systembibliotheken identifizieren
* die typischen Orte für Systembibliotheken identifizieren
# Shared Libraries laden<br>
* Shared Libraries laden<br>


 
= Liste wichtiger Dateien, Verzeichnisse und Anwendungen: =
''' Liste wichtiger Dateien, Verzeichnisse und Anwendungen: '''


* ldd
* ldd
Zeile 19: Zeile 16:
* LD_LIBRARY_PATH
* LD_LIBRARY_PATH
<br>
<br>
''' Allgemeines '''<br>
= 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
*Eine Bibliothek ist ein kompilierter Satz von Code, der alle Objekte enthält, die zum Ausführen einer in eine Datei integrierten Software erforderlich sind.
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.<br>
*Beispielsweise druckt man eine Eingabe und eine Ausgabe.Man hat die Aufgabe, Daten zu speichern und ... all dies wird nicht von Grund auf neu programmiert.Beispielsweise müssen Sie das Daten eingabe programm nicht mehr neu schreiben, sondern es einfach aus einer Bibliothek abrufen,


 
== Verwaltung von Shared Libraries ==
''' 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:<br>
<br>
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:<br>


  archangel:/ # ldd /usr/bin/grep
  archangel:/ # ldd /usr/bin/grep
Zeile 35: Zeile 30:
<br>
<br>


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:
*Wenn Sie neue Bibliotheken auf einem System installieren, benötigen Sie das Programm ldconfig,damit der dynamische Linker diese Bibliotheken auch verwendet.  
archangel:/ # less /etc/ld.so.conf
*Zu diesem Zweck liest ldconfig die Datei /etc/ld.so.confbzw.&nbsp;alle conf-Dateien im Verzeichnis /etc/ld.so.conf.d ein. Hier sind alle Verzeichnisse  aufgelistet,  in  denen  sichdynamische Libraries befinden:
/usr/X11R6/lib
*archangel:/ # less /etc/ld.so.conf
  /usr/i486-linux/lib
  /usr/i486-linux/lib
  /usr/i486-linux-libc5/lib=libc5
  /usr/i486-linux-libc5/lib=libc5
Zeile 44: Zeile 39:
  /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 Libraries vom dynamischen Linker verwendet und bei Bedarf eingebunden werden.
<br>
*Um den aktuellen Inhalt der Datei /etc/ld.so.cache anzuzeigen, verwenden Sie folgen des Kommando:<br>
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
*Manche Programme funktionieren nur dann, wenn eine Bibliothek mit einer bestimmten Versionsnummer auf Ihrem System installiert ist.
*Die Versionsnummer einer einzelnen Bibliothek ermitteln Sie auf folgendem Weg:
archangel:/ # ldconfig -p | grep libusb
        libusb-0.1.so.4 (libc6) => /usr/lib/libusb-0.1.so.4<br>
== LD_LIBRARY_PATH ==
*Wenn  ein  Programmierer  eigene  Bibliotheken  programmiert,  kann  er  diese  testen,indem  er  das  Betriebssystem  veranlasst,vorübergehend  auf  andere  Verzeichnisse zuzugreifen, wenn Bibliotheken benötigt werden.
*Zu diesem Zweck werden der Variablen LD_LIBRARY_PATH die  entsprechenden Pfade  zuden  Bibliotheken  übergeben.Mehrere  Pfade  werden  hierbei  durch  Doppelpunkte  voneinander  getrennt.
*Standardmäßig ist die Variable LD_LIBRARY_PATHnicht gesetzt.
=Kontrollfragen=
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
[[Kategorie:Linux/LPIC/101]]

Aktuelle Version vom 28. Mai 2023, 23:16 Uhr

Wichtigste Wissensgebiete

  1. Shared Libraries identifizieren
  2. die typischen Orte für Systembibliotheken identifizieren
  3. Shared Libraries laden

Liste wichtiger Dateien, Verzeichnisse und Anwendungen:

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


Allgemeines

  • Eine Bibliothek ist ein kompilierter Satz von Code, der alle Objekte enthält, die zum Ausführen einer in eine Datei integrierten Software erforderlich sind.
  • Beispielsweise druckt man eine Eingabe und eine Ausgabe.Man hat die Aufgabe, Daten zu speichern und ... all dies wird nicht von Grund auf neu programmiert.Beispielsweise müssen Sie das Daten eingabe programm nicht mehr neu schreiben, sondern es einfach aus einer Bibliothek abrufen,

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/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 Libraries vom dynamischen Linker verwendet 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
  • Manche Programme funktionieren nur dann, wenn eine Bibliothek mit einer bestimmten Versionsnummer auf Ihrem System installiert ist.
  • Die Versionsnummer einer einzelnen Bibliothek ermitteln Sie auf folgendem Weg:
archangel:/ # ldconfig -p | grep libusb
        libusb-0.1.so.4 (libc6) => /usr/lib/libusb-0.1.so.4

LD_LIBRARY_PATH

  • Wenn ein Programmierer eigene Bibliotheken programmiert, kann er diese testen,indem er das Betriebssystem veranlasst,vorübergehend auf andere Verzeichnisse zuzugreifen, wenn Bibliotheken benötigt werden.
  • Zu diesem Zweck werden der Variablen LD_LIBRARY_PATH die entsprechenden Pfade zuden Bibliotheken übergeben.Mehrere Pfade werden hierbei durch Doppelpunkte voneinander getrennt.
  • Standardmäßig ist die Variable LD_LIBRARY_PATHnicht gesetzt.

Kontrollfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5