Préparation LPI Exam 101 - Section 102.3
Analyse du document source Le document fourni ne contient aucune question d'examen explicite à résoudre. Il s'agit du support de cours de la section 102.3 (Librairies partagées) pour la préparation à l'examen LPI 101.
D'après le document Préparation LPI Exam 101 - Section 102.3
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Linux System Administration · PDF · 12 pages
Afficher l'aperçu du document
Analyse du document source
Le document fourni ne contient aucune question d'examen explicite à résoudre. Il s'agit du support de cours de la section 102.3 (Librairies partagées) pour la préparation à l'examen LPI 101. Étant donné l'absence de questions, les sections suivantes structurent l'intégralité des concepts de ce document sous forme de corrigé thématique afin de couvrir les domaines de connaissances exigés.
Comparaison des librairies statiques et dynamiques
Le module demande d'identifier les librairies. Il est essentiel de comprendre les différences fondamentales entre les deux types de librairies gérées par Linux.
| Caractéristique | Librairies statiques | Librairies partagées (dynamiques) |
|---|---|---|
| Extension | .a |
.so ou .so.version |
| Intégration | Liées directement dans le code de l'exécutable lors de la compilation. | L'exécutable contient de simples références vers la librairie. |
| Ressources | Génèrent de plus gros exécutables et ont une empreinte mémoire plus importante. | Chargées en mémoire uniquement à l'utilisation et partagées entre plusieurs applications. |
| Mise à jour | Manque de souplesse : si une fonction est modifiée, il faut recompiler tout l'exécutable. | Souples : gèrent l'accessibilité globale et permettent d'héberger plusieurs versions simultanément. |
| Cas d'usage | Utiles pour sécuriser des exécutables ou utiliser des applications anciennes incompatibles avec les librairies récentes. | Indispensables au fonctionnement de Linux (exemple : la glibc située dans /lib/libc-2.10.1.so). |
Emplacement et déclaration des librairies
Pour que les exécutables trouvent les librairies dynamiques, le système s'appuie sur des répertoires standards et un système de mise en cache.
- Répertoires habituels : Le système recherche nativement les librairies dans
/lib,/usr/libet/usr/local/lib. - Le fichier /etc/ld.so.conf : Les chemins supplémentaires doivent être déclarés dans ce fichier. Sur de nombreuses distributions, ce fichier inclut d'autres fichiers de configuration via une directive placée en début de fichier :
include /etc/ld.so.conf.d/*.conf - Mise à jour du système (ldconfig) : Après chaque ajout d'un nouveau chemin de librairie, il est obligatoire d'exécuter la commande
ldconfig. C'est elle qui permet la prise en compte de ces nouveaux chemins par le système.
Substitution et tests avec LD_LIBRARY_PATH
Le chargement des librairies peut être modifié de manière prioritaire par l'utilisateur sans impacter la configuration globale du système.
La variable LD_LIBRARY_PATH :
Elle permet de définir des chemins de recherche alternatifs pour les librairies. Les chemins déclarés dans cette variable sont utilisés en priorité par rapport aux chemins systèmes. C'est particulièrement pratique pour tester une nouvelle version de librairie.
Les chemins doivent être séparés par le caractère :.
export LD_LIBRARY_PATH=/opt/appli/lib:/opt/appli2/lib
Les liens symboliques : Si une application recherche une librairie sous un autre nom, ou dans un répertoire différent de celui de son installation (par exemple, à cause d'une directive fixée à la compilation), l'utilisation d'un lien symbolique est la solution recommandée.
ln -s /usr/lib/mozilla/plugins/nppdf.so /home/franck/.mozilla/plugins/nppdf.so
Résolution des librairies manquantes
Lorsqu'une application nécessite une librairie qui n'est pas présente sur le système, vous disposez de deux méthodes d'investigation :
- Recherche avec le gestionnaire de paquets : Utilisez le gestionnaire de haut niveau de votre distribution pour trouver quel paquet fournit le fichier manquant. Le document cite l'exemple de
yum:yum whatprovides */lib.foo.so.3 - Recherche manuelle : Parcourir internet ou les dépôts alternatifs pour trouver soit le code source à recompiler, soit une version déjà compilée spécifiquement pour votre architecture cible.
Diagnostic avec la commande ldd
La commande ldd affiche la liste des librairies dynamiques indispensables à l'exécution d'une commande. Elle s'utilise lorsqu'une application ne fonctionne pas en raison d'une librairie manquante, d'une version incompatible, ou si une dépendance en cascade est brisée.
- Droits : Elle est utilisable par tout utilisateur, aucun privilège
rootn'est requis. - Comportement de sortie :
- Si un chemin absolu est indiqué, il s'agit d'une spécification directe en dur :
/lib/ld-linux.so.2 (0x0049c000) - Sinon, la commande illustre la résolution dans le système :
libselinux.so.1 => /lib/libselinux.so.1 (0x008f2000)
- Si un chemin absolu est indiqué, il s'agit d'une spécification directe en dur :
- Options : L'option
-vpermet d'afficher les informations détaillées, et plus particulièrement les versions des librairies requises (ex:GLIBC_2.6,ATTR_1.1).
ldd -d /bin/mv
ldd -v /bin/mv
(Note : l'option -d effectue également une relocalisation des données et signale les objets manquants, bien que le cours n'explicite pas ce détail de l'option -d).
Méthode
Ce type d'épreuve de la certification LPI évalue votre compréhension de l'écosystème de compilation et d'exécution sous Linux. Face à une question portant sur les librairies :
- Hiérarchisez les chemins : Retenez toujours l'ordre de priorité de chargement : la variable
LD_LIBRARY_PATHsupplante le cache géré par/etc/ld.so.conf, qui lui-même supplante les répertoires par défaut comme/lib. - Ne confondez pas les outils :
lddest strictement un outil de lecture et de diagnostic. Pour appliquer un changement de configuration sur le système, c'estldconfigqu'il faut utiliser. - Apprenez la gestion des dépendances : En situation d'examen, savoir associer un fichier binaire manquant (comme
.so.3) à une requête de gestionnaire de paquets (commeyum whatprovidesouapt-file search) est un réflexe indispensable.
Commentaires
Aucun commentaire pour le moment. Posez la première question.