GNU/Linux >> Znalost Linux >  >> Cent OS

Jak používat příkaz ldconfig v Linuxu

Příkaz ldconfig se používá k informování systému o nových umístěních sdílených knihoven. Používá informace poskytnuté /etc/ld.so.conf konfigurační soubor.

Příkaz ldconfig vytvoří mezipaměťovou databázi všech knihoven na základě konfiguračního souboru. Tato mezipaměť je normálně uložena v /etc/ld.so.cache soubor.

Zde je syntaxe příkazu ldconfig:

# ldconfig [option]

Následující tabulka popisuje užitečné volby pro příkaz ldconfig:

Možnost Popis
-v Verbose; vytisknout další informace.
-n K určení umístění nových sdílených knihoven použijte volbu příkazového řádku. Příklad:ldconfig -n /some/directory.
-f Určete jiný než výchozí konfigurační soubor (/etc/ld.so.conf ).
-p Slouží k vytištění seznamu aktuálních knihoven uložených v souboru mezipaměti.

Konfigurační soubor /etc/ld.so.conf

Primárním konfiguračním souborem pro sdílené knihovny je soubor /etc/ld.so.conf; obvykle je však v tomto souboru pouze jeden řádek:

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

Řádek include v tomto souboru říká systému, aby také použil všechny konfigurační soubory v určeném adresáři. V případě předchozího příkladu by to byly všechny soubory, které končí na „.conf“ v adresáři /etc/ld.so.conf.d.

Samotný konfigurační soubor je jednoduchý. Obsahuje pouze adresář, ve kterém jsou uloženy sdílené knihovny:

# 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

Seznam knihoven uložených v mezipaměti

Chcete-li zobrazit seznam knihoven uložených v mezipaměti, můžete použít volbu -p příkazu ldconfig, jak je uvedeno níže:

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

Přidejte nové knihovny pomocí ldconfig

Chcete-li do systému přidat nové sdílené knihovny, musíte je nejprve stáhnout do systému a umístit je do adresáře. Po přidání nových knihoven byste vytvořili konfigurační soubor v adresáři /etc/ld.so.conf.d a poté spustili příkaz ldconfig. Všechny tyto úlohy by měly být prováděny jako uživatel root:

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

Pokud se příkaz ldconfig provede úspěšně, nebude žádný výstup.

Proměnná LD_LIBRARY_PATH

Běžní uživatelé nemohou úspěšně spustit příkaz ldconfig; pokud však chce běžný uživatel používat vlastní sdílenou knihovnu, může si tento uživatel stáhnout tento soubor do svého domovského adresáře a použít LD_LIBRARY_PATH k označení umístění souborů vlastní knihovny, například:

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

Pokud je proveden užitečně, neměl by poslední příkaz produkovat žádný výstup. Chcete-li provést trvalou změnu, umístěte LD_LIBRARY_PATH=/home/testuser/lib příkaz ve vašem ~/.bashrc soubor.

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

Příkaz ldd

Pomocí příkazu ldd můžete zjistit, jaké sdílené knihovny konkrétní příkaz používá. Zde je syntaxe příkazu ldd:

# ldd [options] FILE

Například:

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

Účelem použití příkazu ldd je odstraňovat problémy s kódem, který píšete. Tento příkaz vám řekne nejen to, jaké knihovny jsou volány, ale konkrétně, ze kterého adresáře jsou jednotlivé knihovny volány. To může být extrémně užitečné, když se knihovna nechová tak, jak byste očekávali.

Následující tabulka popisuje užitečné volby pro příkaz ldd:

Možnost Popis
-v Verbose; vytisknout další informace.
-u Zobrazit všechny nepoužívané přímé závislosti.


Cent OS
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat Linux Screen Command

  1. Jak používat příkaz sudo v Linuxu

  2. Jak používat Su Command v Linuxu

  3. Jak používat příkaz ipset v Linuxu

  1. Jak používat příkaz Disown v Linuxu

  2. Jak používat příkaz Linux SS

  3. Jak používat příkaz Linux nohup