Comment utiliser la commande LDD sous Linux

Vous vous demandez comment utiliser la commande LDD sous Linux?

Linux offre une grande flexibilité car il vous permet d’ajuster votre système en fonction de vos besoins. Cela signifie que vous pouvez facilement utiliser votre système via le terminal. De plus, vous pouvez contrôler différents paramètres et contrôler les fichiers partagés et utilisés par différents programmes de votre système.

Une commande, en particulier, vous permet de reconnaître les bibliothèques utilisées par un programme donné en cours d’inspection. Il s’agit de la commande LDD développée par Roland McGrath et Ulrich Drepper.

LDD (List Dynamic Dependencies) permet à l’utilisateur d’identifier les dépendances de bibliothèque partagées entre différents fichiers exécutables.

Ce guide vous aidera à apprendre à utiliser la commande LDD sous Linux.

Alors sans plus tarder, commençons !

Types de bibliothèques.

Une bibliothèque est un ensemble bien défini de fonctions, d’objets, de variables, de classes, de spécifications de type, de conditions et de sous-programmes qui dictent les opérations des fichiers et des programmes, sans avoir à maintenir le code source.

Il existe trois types de bibliothèques:

  1. Bibliothèques dynamiques : Ce sont des bibliothèques utilisées par des programmes compilés à plus petite échelle. Comme son nom l’indique, il est chargé dynamiquement au moment de l’exécution, de sorte qu’une seule copie est utilisée dynamiquement pour exécuter plusieurs programmes.

Cela réduit la consommation de mémoire, minimisant ainsi la taille du programme et améliorant les performances. Ils ont généralement des extensions “.so“.

  1. Bibliothèques statiques : Ces bibliothèques sont utilisées par des programmes complets. Ils lient des programmes sans recompiler le code source, ce qui permet de gagner du temps. Ces bibliothèques sont incluses séparément dans les fichiers de programme qui nécessitent ses fonctions. Ils sont généralement suivis d’une extension “.a“.
  2. Bibliothèques partagées : Ce sont des bibliothèques installées individuellement qui sont automatiquement utilisées par les programmes lors de leur installation. Ils peuvent remplacer des parties spécifiques d’une bibliothèque préexistante lorsque le programme effectue certaines tâches. De plus, ils peuvent être utilisés lors de l’exécution avec notre code ou un programme.

La plupart des fichiers exécutables que nous utilisons au quotidien contiennent des bibliothèques partagées. La commande LDD répertorie les dépendances de la bibliothèque dynamique. Ces bibliothèques sont réutilisées et partagées entre les programmes pour faciliter le développement des programmes et réduire leur taille et leur charge dans la mémoire de l’ordinateur.

Sous Linux, ces fichiers se présentent sous la forme d’une extension “.so” et ils sont stockés dans /usr/lib* ou simplement /lib*.

Diverses distributions de systèmes Linux peuvent empaqueter un ensemble différent de bibliothèques pour un programme, ce qui le fait fonctionner différemment sur différentes versions du système d’exploitation. Lorsqu’une bibliothèque partagée pour un programme n’est pas disponible sur votre système, vous obtenez une erreur qui peut ressembler à ceci:

Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.

Nous pouvons ensuite vérifier les bibliothèques partagées pour un programme particulier à l’aide de la commande LDD.

Installation de la commande LDD.

La commande LDD est intrinsèquement disponible dans presque toutes les distributions Linux. Dans le cas contraire, vous pouvez utiliser la commande suivante pour l’installer:

$ sudo apt-get install libc-bin

La commande $ ldd a la syntaxe suivante:

$ ldd <options> <executable>

Ou plus généralement:

$ ldd -v /path/to/program/executable

LDD est une commande basique mais puissante. Il offre de l’aide et d’autres variations en utilisant différents drapeaux. Ils sont brièvement décrits ci-dessous.

ion : Pour afficher la version ldd actuellement utilisée.

-v --verbose: Pour afficher les informations de manière complexe.

-u --unused: Pour afficher les dépendances inutilisées.

-d --data-relocs: Pour déplacer et identifier les objets manquants.

-r --function-relocs: Pour déplacer des objets et des fonctions de données ainsi que pour identifier des fonctions ou des objets manquants.

-help: Pour fournir de l’aide concernant l’utilisation des commandes.

À l’aide de la commande LDD.

Maintenant que vous avez terminé l’installation, vous êtes prêt à apprendre à utiliser la commande LDD sous Linux. Nous allons démontrer cela ainsi que la façon dont cela aide à identifier les bibliothèques partagées.

Nous examinerons les bibliothèques partagées pour Bash, le shell standard sous Linux. Il est responsable de l’exécution des commandes et de la fourniture d’une interface entre l’utilisateur et le système d’exploitation.

Pour utiliser la commande LDD, procédez comme suit:

  1. Commencez par ouvrir le Terminal de commande en appuyant sur Ctrl+Alt + T de votre clavier.
  2. Ensuite, localisez le chemin à l’aide de la commande which ou whereis suivie de la commande LDD en tapant ce qui suit:
$ which bash$ whereis bash$ ldd /usr/bin/bash
 Commande LDD sous Linux

Comme vous pouvez le voir, les dépendances de la bibliothèque partagée sont visibles. Pour un aperçu détaillé et plus complexe, utilisez l’indicateur -v avec la commande $ ldd comme suit:

$ ldd -v /usr/bin/bash
 Commande LDD sous Linux

De même, nous pouvons utiliser l’indicateur -u pour afficher les dépendances inutilisées.

$ ldd -u /usr/bin/bash
- drapeau u

Dans le cas illustré ci-dessus, il n’y a pas de dépendances inutilisées. Il est toujours conseillé de garder un œil sur les bibliothèques inactives et consommant de la mémoire. Ne pas le faire peut charger votre noyau avec des fichiers inutilisés, ce qui entrave les performances. Il serait utile de consulter notre article sur la façon de libérer de l’espace sur Ubuntu.

Pour les délocalisations de données et de fonctions, nous utilisons les drapeaux -d et -r respectivement aux côtés de la commande $ ldd.

$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
 Commande LDD sous Linux

Ces indicateurs aident également à identifier les objets et les fonctions manquants.

Enfin et surtout, nous pouvons utiliser le drapeau --help pour une consultation rapide des drapeaux et de leurs actions respectives.

-- drapeau d'aide

Limitations de la commande LDD.

Il convient de noter que la commande LDD ne fonctionnera pas sur les programmes qui ne sont pas exécutables dynamiquement, les bibliothèques partagées “a.out” ou les fichiers obsolètes ou développés avant la sortie du LDD.

Enfin, il est conseillé de ne pas utiliser les commandes LDD avec des sources non fiables car cela peut entraîner des erreurs et des exceptions brusques.

La page de manuel de LDD suggère une commande alternative composée des utilitaires objdump et grep.

 ~/$objdump -p /path/program/grep NEEDED

LDD est l’une de ces instructions minées qui, si elles sont utilisées correctement, peuvent faire une différence substantielle dans votre interaction avec le système d’exploitation. C’est une commande de liaison puissante avec un but spécifique, et elle offre certainement. Pour plus de détails sur la commande et son utilisation, vous pouvez vous rendre sur la page de manuel de la commande LDD.

Leave a Reply