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.

Préparation LPI Exam 101 - Section 102.3

Document source

Préparation LPI Exam 101 - Section 102.3

Linux System Administration · PDF · 12 pages

Afficher l'aperçu du document

Consulter le document original →

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.

  1. Répertoires habituels : Le système recherche nativement les librairies dans /lib, /usr/lib et /usr/local/lib.
  2. 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
    
  3. 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 root n'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)
  • Options : L'option -v permet 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 :

  1. Hiérarchisez les chemins : Retenez toujours l'ordre de priorité de chargement : la variable LD_LIBRARY_PATH supplante le cache géré par /etc/ld.so.conf, qui lui-même supplante les répertoires par défaut comme /lib.
  2. Ne confondez pas les outils : ldd est strictement un outil de lecture et de diagnostic. Pour appliquer un changement de configuration sur le système, c'est ldconfig qu'il faut utiliser.
  3. 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 (comme yum whatprovides ou apt-file search) est un réflexe indispensable.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions