Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
|
groupes_d_interets:linux:lpic1_2012:seance_004 [2012/12/08 14:47] arekkusu créée |
groupes_d_interets:linux:lpic1_2012:seance_004 [2013/01/05 20:30] (Version actuelle) axel |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== 2013.04.04 Séance 4 ====== | + | ====== 2013.01.04 Séance 4 ====== |
| Ligne 7: | Ligne 7: | ||
| ===== 102.3 Manage shared libraries ===== | ===== 102.3 Manage shared libraries ===== | ||
| + | |||
| + | Définition | ||
| + | -------------------- | ||
| + | Les librairies partagées sont des librairies qui sont utilisé par différents programmes, | ||
| + | sans que chacuns de ces programmes aient eu besoin de compiler ces librairies. | ||
| + | |||
| + | Avantages : | ||
| + | --------------- | ||
| + | |||
| + | - Allège le programme. Il peut utiliser les librairies sans avoir eu besoin de les compiler. | ||
| + | - Economie de mémoire. La librairie est chargée qu'une seule fois. Sinon, elle serait chargé par chaque programme, donc plus lourd. | ||
| + | |||
| + | |||
| + | Inconvénients : | ||
| + | --------------- | ||
| + | |||
| + | - Les programmes qui dépendent de librairies partagées ne fonctionneront pas si ces librairies sont absentes ou corrompues. | ||
| + | |||
| + | Afficher la liste des librairies partagées dont un programme dépend | ||
| + | -------------------- | ||
| + | |||
| + | % ldd -Programme | ||
| + | |||
| + | Exemple pour la commande 'ls': % ldd /bin/ls | ||
| + | |||
| + | |||
| + | /etc/ld.so.cache | ||
| + | -------------------- | ||
| + | |||
| + | *Les programmes regardent dans ld.so.cache pour trouver les librairies partagées dont ils ont besoin. | ||
| + | *'ld.so.cache' est créer d'après le fichier : '/etc/ld.so.conf' | ||
| + | |||
| + | /etc/ld.so.conf | ||
| + | -------------------- | ||
| + | |||
| + | *Contenu de '/etc/ld.so.conf' : | ||
| + | <code>include /etc/ld.so.conf.d/*.conf</code> | ||
| + | |||
| + | Le fichier '/etc/ld.so.conf' va donc charger toutes les fichiers de configuration présents dans : | ||
| + | /etc/ld.so.conf.d/ | ||
| + | |||
| + | Chacun de ces fichiers de configuration charge différentes librairies. | ||
| + | |||
| + | Charger les librairies partagées | ||
| + | -------------------- | ||
| + | |||
| + | # ldconfig | ||
| + | |||
| + | Cette commande (à exécuter en root) crée le fichier '/etc/ld.so.cache' d'après /etc/ld.so.conf | ||
| + | |||
| + | LD_LIBRARY_PATH | ||
| + | -------------------- | ||
| + | |||
| + | *Regarde d'abord dans cette variable d'environnement pour trouver des librairies partagées. Utile pour faire des tests avec différentes librairies. | ||
| + | |||
| + | *Définir la variable LD_LIBRARY_PATH : | ||
| + | # export LD_LIBRARY_PATH=/chemin/du/dossier/ | ||
| + | |||
| + | **Attention** : Ce n'est pas la meilleur façon de procéder pour tester d'autres librairies. Ils est mieux de créer un nouveau fichier de configuration dans '/etc/ld.so.conf.d/' et d'exécuter 'ldconfig' pour mettre à jour le fichier '/etc/ld.so.cache' | ||
| + | |||
| + | |||
| + | ################################################## | ||
| + | |||
| + | Sources : | ||
| + | * http://wiki.lpi.org/wiki/LPIC-1#102.3_Manage_shared_libraries | ||
| + | * Vidéo 'LPI Linux LPIC-1 101 - 07 - Manage Shared Libraries.mp4' - CBTNuggets | ||
| + | * http://wiki.gel.ulaval.ca/index.php?title=Fonctionnement_de_la_liaison_dynamique_sous_Linux | ||
| + | * http://collonville.thomas.free.fr/verifier-les-dependances-dune-application/ | ||