Certification Linux LPI/Administrateur système débutant/Examen 101/Installation de Linux et gestion des packages/Gérer les bibliothèques partagées

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Installation de Linux et gestion des packages : Gérer les bibliothèques partagées
Certification Linux LPI/Administrateur système débutant/Examen 101/Installation de Linux et gestion des packages/Gérer les bibliothèques partagées
 », n'a pu être restituée correctement ci-dessus.

Gérer les bibliothèques partagées[modifier | modifier le wikicode]

Objectif[modifier | modifier le wikicode]

Description: Les candidats seront capables de déterminer de quelles bibliothèques partagées un programme exécutable dépend, et de les installer si nécessaire. Les candidats seront capable de trouver à quel endroit les bibliothèques du système sont conservées.

fichiers clés termes et utilitaires:
ldd
ldconfig

/etc/ld.so.conf
LD_LIBRARY_PATH

  • Imprimer les dépendances en bibliothèques partagées
  • Installer de nouvelles bibliothèques
  • Construire les dépendances.

Bibliothèques partagées[modifier | modifier le wikicode]

Une bibliothèque est un ensemble de fonctions que les programmes peuvent réutiliser pour implémenter leurs fonctionnalités. Lorsque l’on construit un exécutable, ces bibliothèques sont "liées" au programme. Ce lien peut être statique ou dynamique. Un lien statique signifie que l'exécutable final contiendra les fonctions de la bibliothèque dans ses propres fichiers. Sous Linux, la bibliothèque prend alors l'extension .a (comme dans lib.a). Un lien dynamique signifie que la bibliothèque devra être chargée en mémoire RAM quand le programme aura besoin d'exécuter les fonctions qu'elle contient. Sous Linux, la bibliothèque prend alors l'extension .so (comme dans lib.so).

Les répertoires par défaut des bibliothèques standards sont:

  • /lib: utilisé principalement par les programmes de /bin.
  • /usr/lib: utilisé principalement par les programmes de /usr/bin.

Le fichier /etc/ld.so.conf est utilisé par le système pour indiquer les éventuelles autres localisations des bibliothèques. Pour créer un fichier cache utilisé par le chargeur de liens, utilisez ldconfig. Le fichier /etc/ld.so.cache sera géneré. Ce fichier contient en fait la liste des bibliothèques trouvées par le système dans les répertoires mentionnés par le fichier /etc/ld.so.conf.

Dépendance de bibliothèques[modifier | modifier le wikicode]

Pour afficher la liste des dépendances d’un programme (ou d'une bibliothèque) en termes de bibliothèques partagées, utilisez ldd.

ldd [-vdr] programme|bibliothèque

Exemple:

$ ldd -d -v /bin/cp
  libc.so.6 => /lib/libc.so.6 (0x40027000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
  Version information:
  /bin/cp:
               libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
               libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
               libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
               libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
  /lib/libc.so.6:
               ld-linux.so.2 (GLIBC_2.1.1) => /lib/ldlinux.so.2
               ld-linux.so.2 (GLIBC_2.2.3) => /lib/ldlinux.so.2
               ld-linux.so.2 (GLIBC_2.1) => /lib/ldlinux.so.2
               ld-linux.so.2 (GLIBC_2.2) => /lib/ld-linux.so.2
               ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2

Chargeur de liens[modifier | modifier le wikicode]

Le chargeur de liens ld.so cherche la bibliothèque dont un programme a besoin et la charge en mémoire RAM. L'ordre de recherche de ld.so est :

  • LD_LIBRARY_PATH
  • Le fichier cache /etc/ld.so.cache
  • Les répertoires par défaut /lib et /usr/lib.

Exercices[modifier | modifier le wikicode]