GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So verwenden Sie den Befehl ldconfig unter Linux

Der Befehl ldconfig wird verwendet, um dem System neue Speicherorte gemeinsam genutzter Bibliotheken mitzuteilen. Die von /etc/ld.so.conf bereitgestellten Informationen werden verwendet Konfigurationsdatei.

Der Befehl ldconfig erstellt eine Cache-Datenbank aller Bibliotheken basierend auf der Konfigurationsdatei. Dieser Cache wird normalerweise in /etc/ld.so.cache gespeichert Datei.

Hier ist die Syntax des ldconfig-Befehls:

# ldconfig [option]

Die folgende Tabelle beschreibt nützliche Optionen für den Befehl ldconfig:

Option Beschreibung
-v Ausführlich; zusätzliche Informationen drucken.
-n Verwenden Sie eine Befehlszeilenoption, um den Speicherort neuer gemeinsam genutzter Bibliotheken anzugeben. Beispiel:ldconfig -n /some/directory.
-f Geben Sie eine andere Konfigurationsdatei als die Standarddatei an (/etc/ld.so.conf ).
-p Zum Drucken einer Liste der aktuellen Bibliotheken, die in der Cache-Datei gespeichert sind.

Konfigurationsdatei /etc/ld.so.conf

Die primäre Konfigurationsdatei für gemeinsam genutzte Bibliotheken ist die Datei /etc/ld.so.conf; normalerweise enthält diese Datei jedoch nur eine einzige Zeile:

# cat /etc/ld.so.conf 
include ld.so.conf.d/*.conf

Die include-Zeile in dieser Datei weist das System an, auch alle Konfigurationsdateien im angegebenen Verzeichnis zu verwenden. Im Fall des vorherigen Beispiels wären das alle Dateien mit der Endung „.conf“ im Verzeichnis /etc/ld.so.conf.d.

Die Konfigurationsdatei selbst ist einfach. Es enthält nur ein Verzeichnis, in dem die gemeinsam genutzten Bibliotheken gespeichert sind:

# more /etc/ld.so.conf.d/libiscsi-x86_64.conf /usr/lib64/iscsi
# ls /usr/lib64/iscsi
libiscsi.so.2 libiscsi.so.2.0.10900

Zwischengespeicherte Bibliotheken auflisten

Um die zwischengespeicherten Bibliotheken aufzulisten, können Sie die Option -p des Befehls ldconfig wie unten gezeigt verwenden:

# ldconfig -p | more
784 libs found in cache `/etc/ld.so.cache'
        p11-kit-trust.so (libc6,x86-64) => /lib64/p11-kit-trust.so
        libz.so.1 (libc6,x86-64) => /lib64/libz.so.1
        libyaml-0.so.2 (libc6,x86-64) => /lib64/libyaml-0.so.2
        libyajl.so.2 (libc6,x86-64) => /lib64/libyajl.so.2
        libxtables.so.10 (libc6,x86-64) => /lib64/libxtables.so.10
        libxslt.so.1 (libc6,x86-64) => /lib64/libxslt.so.1
        libxshmfence.so.1 (libc6,x86-64) => /lib64/libxshmfence.so.1
        libxml2.so.2 (libc6,x86-64) => /lib64/libxml2.so.2
        libxmlrpc_util.so.3 (libc6,x86-64) => /lib64/libxmlrpc_util.so.3
        libxmlrpc_server_cgi.so.3 (libc6,x86-64) => /lib64/libxmlrpc_server_cgi.so.3
        libxmlrpc_server_abyss.so.3 (libc6,x86-64) => /lib64/libxmlrpc_server_abyss.so.3
....

Neue Bibliotheken mit ldconfig hinzufügen

Um dem System neue gemeinsam genutzte Bibliotheken hinzuzufügen, würden Sie zuerst die Bibliotheken auf das System herunterladen und sie in einem Verzeichnis ablegen. Nachdem Sie neue Bibliotheken hinzugefügt haben, erstellen Sie eine Konfigurationsdatei im Verzeichnis /etc/ld.so.conf.d und führen dann den Befehl ldconfig aus. Alle diese Aufgaben sollten als Root-Benutzer durchgeführt werden:

# ls /usr/lib64/test
mylib.so.1
# cat /etc/ld.so.conf.d/libtest.conf /usr/lib64/test
# ldconfig

Wenn der Befehl ldconfig erfolgreich ausgeführt wird, erfolgt keine Ausgabe.

LD_LIBRARY_PATH-Variable

Normale Benutzer können den Befehl ldconfig nicht erfolgreich ausführen; Wenn jedoch ein normaler Benutzer eine benutzerdefinierte gemeinsam genutzte Bibliothek verwenden möchte, kann dieser Benutzer diese Datei in sein Home-Verzeichnis herunterladen und den LD_LIBRARY_PATH verwenden, um den Speicherort der benutzerdefinierten Bibliotheksdateien anzugeben, wie folgt:

$ ls /home/testuser/lib
mylib.so.1
$ LD_LIBRARY_PATH=/home/testuser/lib

Bei sinnvoller Ausführung sollte der letzte Befehl keine Ausgabe erzeugen. Um dies dauerhaft zu ändern, platzieren Sie LD_LIBRARY_PATH=/home/testuser/lib Befehl in Ihrer ~/.bashrc Datei.

$ vi ~/.bashrc
LD_LIBRARY_PATH=/home/testuser/lib
export LD_LIBRARY_PATH

ldd-Befehl

Mit dem Befehl ldd können Sie sehen, welche gemeinsam genutzten Bibliotheken ein bestimmter Befehl verwendet. Hier ist die Syntax des ldd-Befehls:

# ldd [options] FILE

Zum Beispiel:

# ldd /bin/ls
        linux-vdso.so.1 =>  (0x00007ffee2b3f000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff5a6c22000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007ff5a6a1d000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007ff5a6814000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ff5a6447000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff5a61e5000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ff5a5fe1000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff5a6e49000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007ff5a5ddc000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff5a5bc0000)

Der Zweck der Verwendung des Befehls ldd besteht darin, Probleme mit dem von Ihnen geschriebenen Code zu beheben. Dieser Befehl teilt Ihnen nicht nur mit, welche Bibliotheken aufgerufen werden, sondern insbesondere aus welchem ​​Verzeichnis jede Bibliothek aufgerufen wird. Dies kann äußerst nützlich sein, wenn sich eine Bibliothek nicht so verhält, wie Sie es erwarten würden.

Die folgende Tabelle beschreibt nützliche Optionen für den Befehl ldd:

Option Beschreibung
-v Ausführlich; zusätzliche Informationen drucken.
-u Alle ungenutzten direkten Abhängigkeiten anzeigen.


Cent OS
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. So verwenden Sie den Su-Befehl unter Linux

  4. So verwenden Sie den Linux-Bildschirmbefehl

  5. So verwenden Sie den ipset-Befehl unter Linux

So verwenden Sie den Befehl sysctl unter Linux

So verwenden Sie den Befehl zum Herunterfahren von Linux

So verwenden Sie grep unter Linux

So verwenden Sie den Mkdir-Befehl unter Linux

So verwenden Sie den Jobs-Befehl unter Linux

So verwenden Sie den Bildschirmbefehl unter Linux