LPIC101/102.3 Shared Libraries verwalten: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
 
== Wichtigste Wissensgebiete ==
= Wichtigste Wissensgebiete =
 
# 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
* ldconfig
* ldconfig
* /etc/ld.so.conf
* /etc/ld.so.conf
* LD_LIBRARY_PATH
* LD_LIBRARY_PATH
<br>
= 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.
== Allgemeines ==
*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,
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 ==
=== 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>
Um zu identifizieren, von welchen Libraries ein Programm abhängt, können Sie dasTool ldd verwenden.


  archangel:/ # ldd /usr/bin/grep
Die Ausgabe des Programms zeigt gleichzeitig die Position der benötigten Libraries im Dateisystem an
  linux-gate.so.1 => (0xffffe000)
  # ldd /usr/bin/grep
  libc.so.6 => /lib/tls/libc.so.6 (0x40030000)
linux-gate.so.1 => (0xffffe000)
  /lib/ld-linux.so.2 (0x40000000)
libc.so.6 => /lib/tls/libc.so.6 (0x40030000)
<br>
/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.  
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.&nbsp;alle conf-Dateien im Verzeichnis /etc/ld.so.conf.d ein. Hier sind alle Verzeichnisse aufgelistet, in denen sichdynamische Libraries befinden:
*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:
*archangel:/ # less /etc/ld.so.conf
# 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 40: Zeile 33:
  /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.
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
Um den aktuellen Inhalt der Datei /etc/ld.so.cache anzuzeigen, verwenden Sie folgen des Kommando
  # ldconfig -p | less
  1128 libs found in cache `/etc/ld.so.cache'
  1128 libs found in cache `/etc/ld.so.cache'
        libzvbi.so.0 (libc6) => /usr/lib/libzvbi.so.0
libzvbi.so.0 (libc6) => /usr/lib/libzvbi.so.0
        libzio.so.0 (libc6) => /usr/lib/libzio.so.0
libzio.so.0 (libc6) => /usr/lib/libzio.so.0
        libzio.so (libc6) => /usr/lib/libzio.so
libzio.so (libc6) => /usr/lib/libzio.so
        libz.so.1 (libc6) => /lib/libz.so.1
libz.so.1 (libc6) => /lib/libz.so.1
        libz.so.1 (libc6) => /usr/lib/libz.so.1
libz.so.1 (libc6) => /usr/lib/libz.so.1
        libz.so (libc6) => /usr/lib/libz.so
libz.so (libc6) => /usr/lib/libz.so
        liby2.so.2 (libc6) => /usr/lib/liby2.so.2
liby2.so.2 (libc6) => /usr/lib/liby2.so.2
        libyui.so.2 (libc6) => /usr/lib/libyui.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.


*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:
*Die Versionsnummer einer einzelnen Bibliothek ermitteln Sie auf folgendem Weg:
  # ldconfig -p | grep libusb
  archangel:/ # ldconfig -p | grep libusb
libusb-0.1.so.4 (libc6) => /usr/lib/libusb-0.1.so.4
        libusb-0.1.so.4 (libc6) => /usr/lib/libusb-0.1.so.4<br>


== LD_LIBRARY_PATH ==
=== 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.  
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.  
*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.
*Standardmäßig ist die Variable LD_LIBRARY_PATHnicht gesetzt.


[[Kategorie:Linux/LPIC/101]]
[[Kategorie:Linux/LPIC/101]]

Aktuelle Version vom 10. Oktober 2024, 08:21 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

# 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:
# 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

# 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:

# 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.