La gestion des dépendances fait partie intégrante de la maintenance de votre système Linux. Les logiciels sont complexes et reposent sur une multitude de bibliothèques et de fichiers partagés. Parfois, il devient difficile de garder une trace des fichiers requis par une application.
C’est là que la commande ldd de Linux entre en jeu. ldd est un outil de ligne de commande très utile pour garder une trace des dépendances d’objets partagés nécessaires à une application.
Voyons comment vous pouvez utiliser la commande ldd à votre avantage et devenir un pro de la gestion des dépendances sous Linux !
Que sont les dépendances de paquets ?
Un logiciel n’est pas un simple code source autonome, mais plutôt un amalgame de code source natif et de code emprunté à des bibliothèques externes. Lorsque ces bibliothèques et autres objets partagés sont absents de votre système, une application qui en dépend peut mal fonctionner ou carrément refuser de se lancer.
Tous ces fichiers, paquets, bibliothèques, etc. partagés sont cumulativement appelés dépendances sous Linux. Bien que cette courte définition vous donne une idée générale des dépendances, la réalité est un peu plus complexe que cela, et c’est pourquoi il est important d’apprendre ce que sont les dépendances d’un paquetage en profondeur.
Qu’est-ce que la commande ldd et comment fonctionne-t-elle ?
ldd est l’abréviation de List Dynamic Dependencies (liste des dépendances dynamiques). Comme son nom l’indique, ldd dresse la liste de tous les objets partagés nécessaires à une application.
Il fonctionne en invoquant l’éditeur de liens dynamiques avec des variables d’environnement spécialement définies. Lorsque vous exécutez ldd avec l’emplacement d’un binaire, il renvoie une sortie contenant la liste des dépendances, leur emplacement et une valeur hexadécimale représentant l’endroit de la mémoire où elles sont chargées.
Trouver des dépendances d’objets partagés avec la commande ldd
Maintenant que vous avez une idée claire de ce qu’est ldd, passons à la pratique et apprenons comment trouver des dépendances logicielles avec cette commande.
Avant d’apprendre à utiliser ldd, vérifiez d’abord que vous l’avez installé sur votre système en imprimant la version installée de ldd :
ldd --version
Si vous obtenez un message d’erreur « command not found », vous devez d’abord installer ldd.
Sur les systèmes basés sur Ubuntu et Debian, exécutez :
sudo apt install libc-bin
Pour les distributions basées sur Arch :
sudo pacman -S glibc
Sur RHEL et Fedora :
sudo dnf install glibc-common
Une fois ldd installé, vous pouvez maintenant apprendre à l’utiliser. Voici la syntaxe de base de la commande ldd :
ldd binary_location
Si vous ne connaissez pas l’emplacement du binaire, vous pouvez utiliser l’un des nombreux opérateurs de ligne de commande Linux et combiner la sortie de la commande which avec ldd pour trouver les dépendances du paquet :
ldd -flag $(which binary_name)
La commande ldd offre quatre options différentes pour modifier la sortie. Ces options sont les suivantes :
- -v : Imprime une sortie verbeuse comprenant des informations supplémentaires telles que les informations de version pour chaque dépendance.
- -u : Imprime toutes les dépendances inutilisées, c’est-à-dire les dépendances chargées mais non implémentées.
- -d : Imprime les objets manquants et effectue les relocalisations
- -r : Imprime les objets et fonctions manquants et effectue des relocalisations
Gestion des dépendances de paquets sous Linux
Avec ldd dans votre arsenal logiciel, vous serez en mesure de résoudre les problèmes liés aux dépendances d’objets partagés dans votre application.
De plus, comme ldd affiche également l’emplacement où une bibliothèque est chargée, vous pourrez déboguer une application et mieux comprendre comment une bibliothèque particulière est implémentée. ldd affiche également les versions des bibliothèques partagées utilisées dans une application.
Grâce à cette fonctionnalité, vous pouvez vérifier vos applications pour détecter les vulnérabilités potentielles associées à une version obsolète d’une bibliothèque partagée.
La gestion des dépendances est une compétence essentielle pour maintenir votre système Linux en bonne santé. Cependant, il arrive qu’un paquetage se brise alors que toutes ses dépendances sont saines. Il est important que vous sachiez comment trouver et réparer les paquets cassés.