ldd(1)

NOM
ldd - Afficher les dépendances des objets partagés

SYNOPSIS
ldd [option ...] file ...

DESCRIPTION
ldd affiche la liste des objets partagés (bibliothèques partagées) nécessaires pour chaque programme ou bibliothèque passés sur la ligne de commande. Voici un exemple de son utilisation et de sa sortie :

    $ ldd /bin/ls
        linux-vdso.so.1 (0x00007ffcc3563000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)
        /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)

Normalement, ldd appelle l'éditeur de liens dynamiques standard (consultez ld.so(8)) avec la variable d'environnement LD_TRACE_LOADED_OBJECTS définie à 1. Cela force l'éditeur de liens à examiner les dépendances dynamiques du programme et à rechercher puis charger les objets qui les satisfont (selon les règles décrites dans ld.so(8)). Pour chaque dépendance, ldd affiche l'emplacement de l'objet correspondant et l'adresse (hexadécimale) où il est chargé. Les dépendances partagées linux-vdso et ld-linux sont particulières : voir vdso(7) et ld.so(8).

  Sécurité
Soyez conscient que dans certaines circonstances (par exemple si le programme spécifie un interpréteur ELF différent de ld-linux.so), certaines versions de ldd risquent d'essayer d'obtenir les renseignements de dépendances en exécutant directement le programme, ce qui peut entraîner l'exécution de n'importe quel code défini dans l'interpréteur ELF du programme, voire du programme lui-même (avant la glibc antérieures à 2.27, l'implémentation en amont de ldd faisait cela, bien que la plupart des distributions fournissaient une version modifiée qui ne le faisait pas).

Par conséquent, vous ne devriez jamais utiliser ldd sur du code exécutable non sûr, car cela pourrait avoir pour conséquence l'exécution de code arbitraire. Un autre moyen de traiter les exécutables non sûrs est :

    $ objdump -p /chemin/du/programme | grep NEEDED

Remarquez cependant que cette alternative n'affiche que les dépendances directes de l'exécutable, alors que ldd présente tout l'arbre des dépendances de l'exécutable.

OPTIONS

--version
    Afficher le numéro de version de ldd.

--verbose
-v
    Afficher toutes les informations, y compris les versions des symboles.

--unused
-u
    Afficher les dépendances directes inutilisées (depuis la glibc 2.3.4).

--data-relocs
-d
    Réaliser les déplacements et indiquer les objets manquants (ELF seulement).

--function-relocs
-r
    Réaliser les déplacements pour les objets donnés et les fonctions, et indiquer les objets ou fonctions manquants (ELF seulement).

--help
    Aide.

BOGUES
ldd ne fonctionne pas avec les bibliothèques partagées a.out.

ldd ne fonctionne pas avec certains programmes a.out très anciens qui ont été compilés avant que la prise en charge de ldd ne soit ajoutée dans le compilateur. Si vous utilisez ldd sur l'un de ces programmes, il sera lancé avec argc = 0 et les résultats seront imprévisibles.

VOIR AUSSI
pldd(1), sprof(1), ld.so(8), ldconfig(8)

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.