GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come usare il comando ldconfig in Linux

Il comando ldconfig viene utilizzato per comunicare al sistema le nuove posizioni delle librerie condivise. Le informazioni sugli usi fornite da /etc/ld.so.conf file di configurazione.

Il comando ldconfig crea un database cache di tutte le librerie basato sul file di configurazione. Questa cache è normalmente archiviata in /etc/ld.so.cache file.

Ecco la sintassi del comando ldconfig:

# ldconfig [option]

La tabella seguente descrive le opzioni utili per il comando ldconfig:

Opzione Descrizione
-v Prolisso; stampare informazioni aggiuntive.
-n Utilizzare un'opzione della riga di comando per specificare la posizione delle nuove librerie condivise. Esempio:ldconfig -n /some/directory.
-f Specificare un file di configurazione diverso anziché quello predefinito (/etc/ld.so.conf ).
-p Utilizzare per stampare un elenco delle librerie correnti memorizzate nel file della cache.

File di configurazione /etc/ld.so.conf

Il file di configurazione principale per le librerie condivise è il file /etc/ld.so.conf; tuttavia, in genere c'è solo una singola riga in questo file:

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

La riga di inclusione in questo file indica al sistema di utilizzare anche tutti i file di configurazione nella directory specificata. Nel caso dell'esempio precedente, sarebbero tutti i file che terminano con ".conf" nella directory /etc/ld.so.conf.d.

Il file di configurazione stesso è semplice. Contiene solo una directory in cui sono archiviate le librerie condivise:

# 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

Elenca le librerie memorizzate nella cache

Per elencare le librerie memorizzate nella cache, puoi usare l'opzione -p del comando ldconfig come mostrato di seguito:

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

Aggiungi nuove librerie usando ldconfig

Per aggiungere nuove librerie condivise al sistema, devi prima scaricare le librerie nel sistema e inserirle in una directory. Dopo aver aggiunto nuove librerie, creare un file di configurazione nella directory /etc/ld.so.conf.d e quindi eseguire il comando ldconfig. Tutte queste attività dovrebbero essere eseguite come utente root:

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

Se il comando ldconfig viene eseguito correttamente, non ci sarà alcun output.

Variabile LD_LIBRARY_PATH

Gli utenti regolari non possono eseguire correttamente il comando ldconfig; tuttavia, se un utente normale desidera utilizzare una libreria condivisa personalizzata, quell'utente può scaricare questo file nella propria directory home e utilizzare LD_LIBRARY_PATH per indicare la posizione dei file della libreria personalizzata, in questo modo:

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

Se eseguito in modo utile, l'ultimo comando non dovrebbe produrre alcun output. Per rendere questa modifica permanente, inserisci LD_LIBRARY_PATH=/home/testuser/lib comando nel tuo ~/.bashrc file.

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

ldd comando

Puoi vedere quali librerie condivise utilizza un comando specifico usando il comando ldd. Ecco la sintassi del comando ldd:

# ldd [options] FILE

Ad esempio:

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

Lo scopo dell'utilizzo del comando ldd è di risolvere i problemi con il codice che si sta scrivendo. Questo comando indica non solo quali librerie vengono chiamate, ma in particolare da quale directory viene chiamata ciascuna libreria. Questo può essere estremamente utile quando una libreria non si comporta come ti aspetteresti che si comporti.

La tabella seguente descrive le opzioni utili per il comando ldd:

Opzione Descrizione
-v Prolisso; stampare informazioni aggiuntive.
-u Visualizza eventuali dipendenze dirette non utilizzate.


Cent OS
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come usare il comando Su in Linux

  4. Come utilizzare il comando dello schermo di Linux

  5. Come usare il comando ipset in Linux

Come utilizzare il comando sysctl in Linux

Come utilizzare il comando di arresto di Linux

Come usare grep in Linux

Come utilizzare il comando Mkdir su Linux

Come usare il comando jobs in Linux

Come usare il comando schermo in Linux