GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment utiliser la commande ldconfig sous Linux

La commande ldconfig est utilisée pour informer le système des nouveaux emplacements des bibliothèques partagées. Le utilise les informations fournies par /etc/ld.so.conf fichier de configuration.

La commande ldconfig crée une base de données de cache de toutes les bibliothèques en fonction du fichier de configuration. Ce cache est normalement stocké dans le /etc/ld.so.cache dossier.

Voici la syntaxe de la commande ldconfig :

# ldconfig [option]

Le tableau suivant décrit les options utiles de la commande ldconfig :

Option Description
-v Verbeux ; imprimer des informations supplémentaires.
-n Utilisez une option de ligne de commande pour spécifier l'emplacement des nouvelles bibliothèques partagées. Exemple :ldconfig -n /un/répertoire.
-f Spécifiez un fichier de configuration différent plutôt que celui par défaut (/etc/ld.so.conf ).
-p Utiliser pour imprimer une liste des bibliothèques actuelles stockées dans le fichier cache.

Fichier de configuration /etc/ld.so.conf

Le fichier de configuration principal pour les bibliothèques partagées est le fichier /etc/ld.so.conf; cependant, il n'y a généralement qu'une seule ligne dans ce fichier :

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

La ligne include de ce fichier indique au système d'utiliser également tous les fichiers de configuration du répertoire spécifié. Dans le cas de l'exemple précédent, il s'agirait de tous les fichiers se terminant par ".conf" dans le répertoire /etc/ld.so.conf.d.

Le fichier de configuration lui-même est simple. Il contient juste un répertoire dans lequel sont stockées les bibliothèques partagées :

# 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

Répertorier les bibliothèques en cache

Pour répertorier les bibliothèques mises en cache, vous pouvez utiliser l'option -p de la commande ldconfig comme indiqué ci-dessous :

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

Ajouter de nouvelles bibliothèques à l'aide de ldconfig

Pour ajouter de nouvelles bibliothèques partagées au système, vous devez d'abord télécharger les bibliothèques sur le système et les placer dans un répertoire. Après avoir ajouté de nouvelles bibliothèques, vous devez créer un fichier de configuration dans le répertoire /etc/ld.so.conf.d, puis exécuter la commande ldconfig. Toutes ces tâches doivent être effectuées en tant qu'utilisateur root :

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

Si la commande ldconfig s'exécute avec succès, il n'y aura pas de sortie.

Variable LD_LIBRARY_PATH

Les utilisateurs réguliers ne peuvent pas exécuter avec succès la commande ldconfig ; cependant, si un utilisateur régulier souhaite utiliser une bibliothèque partagée personnalisée, cet utilisateur peut télécharger ce fichier dans son répertoire personnel et utiliser LD_LIBRARY_PATH pour indiquer l'emplacement des fichiers de bibliothèque personnalisée, comme suit :

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

Si elle est exécutée utilement, la dernière commande ne devrait produire aucune sortie. Pour en faire un changement permanent, placez le LD_LIBRARY_PATH=/home/testuser/lib commande dans votre ~/.bashrc fichier.

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

Commande ldd

Vous pouvez voir quelles bibliothèques partagées une commande spécifique utilise en utilisant la commande ldd. Voici la syntaxe de la commande ldd :

# ldd [options] FILE

Par exemple :

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

Le but de l'utilisation de la commande ldd est de résoudre les problèmes avec le code que vous écrivez. Cette commande vous indique non seulement quelles bibliothèques sont appelées, mais plus précisément à partir de quel répertoire chaque bibliothèque est appelée. Cela peut être extrêmement utile lorsqu'une bibliothèque ne se comporte pas comme on s'y attendrait.

Le tableau suivant décrit les options utiles de la commande ldd :

Option Description
-v Verbeux ; imprimer des informations supplémentaires.
-u Afficher toutes les dépendances directes inutilisées.


Cent OS
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande Su sous Linux

  4. Comment utiliser la commande d'écran Linux

  5. Comment utiliser la commande ipset sous Linux

Comment utiliser la commande sysctl sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser grep sous Linux

Comment utiliser la commande Mkdir sous Linux

Comment utiliser la commande jobs sous Linux

Comment utiliser la commande screen sous Linux