Apprenez la gestion des dépendances à l'aide de la commande ldd pour mieux administrer votre machine Linux et les packages installés.
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 sous Linux entre en jeu. ldd est un outil de ligne de commande ingénieux pour suivre les dépendances d'objets partagés requises par une application.
Apprenons 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 package?
Le logiciel n'est pas simplement un 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 partagés, packages, bibliothèques, etc., sont appelés cumulativement des dépendances sur Linux. Bien que cette courte définition vous donne une idée approximative des dépendances, la réalité est un peu plus complexe que cela, et c'est pourquoi il est important d'apprendre quelles sont les dépendances de paquet en profondeur.
Qu'est-ce que la commande ldd et comment fonctionne-t-elle?
ldd est l'abréviation de List Dynamic Dependencies. Comme son nom l'indique, ldd répertorie tous les objets partagés requis par une application.
Cela fonctionne en invoquant l'éditeur de liens dynamique avec un ensemble spécial Variables d'environnement. 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 où elles sont chargées en mémoire.
Recherche de 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 vous pouvez trouver des dépendances logicielles avec lui.
Avant d'apprendre à utiliser ldd, vérifiez d'abord s'il est installé sur votre système en imprimant la version installée de ldd :
ldd --version
S'il revient une erreur "commande introuvable", vous devez d'abord installer ldd.
Sur les systèmes basés sur Ubuntu et Debian, exécutez :
sudo apt installer libc-bin
Pour les distributions basées sur Arch :
sudo pacman -S glibc
Sur RHEL et Fedora :
sudo dnf installer glibc-common
Avec ldd installé, vous pouvez maintenant vous concentrer sur l'apprentissage de son utilisation. Voici la syntaxe de base de la commande ldd :
ldd emplacement_binaire
Si vous ne connaissez pas l'emplacement du binaire, vous pouvez utiliser l'un des de nombreux opérateurs de ligne de commande Linux et combinez la sortie de la commande which avec ldd pour trouver les dépendances du package :
ldd -flag $(quel nom_binaire)
La commande ldd offre quatre options différentes pour modifier la sortie. Ils sont:
- -v : Imprime une sortie détaillée 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 des relocalisations
- -r : Imprime les objets et fonctions manquants et effectue les déplacements
Gestion des dépendances de packages sous Linux
Avec ldd dans votre arsenal logiciel, vous serez en mesure de résoudre les problèmes liés à la dépendance des objets partagés avec 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 imprime également les versions des bibliothèques partagées utilisées dans une application.
Grâce à cette fonctionnalité, vous pouvez auditer vos applications pour détecter toute vulnérabilité potentielle associée à une version obsolète d'une bibliothèque partagée.
La gestion des dépendances est une compétence de base qui est cruciale pour maintenir votre système Linux en bonne santé. Cependant, parfois, un paquet peut se casser alors que toutes ses dépendances sont saines. Il est important que vous sachiez comment trouver et réparer les paquets cassés.