Standard pour les repertoires de Lib

Résolu
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   -  
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonsoir tout le monde,

J'aurais besoin de vos lumières.
D'après ce que je sais, les bibliothèques dynamiques
sous Linux (portant l'extension .so) sont habituellement
stockées dans /lib ou /usr/lib (peut être d'autres?)

J'aimerais savoir, lorsqu'une application cherche une de ces
bibliothèques, comment elle procède pour la trouver. Est ce que le système utilise une variable d'environnement où sont contenus
ces repertoires.
Je ne pense pas, je ne l'ai pas trouvé avec les commandes set et env.
Ou bien cette liste de repertoires est stockées dans un fichier?

Ou tout simplement, le système ne va chercher ces bibliothèques
que dans les repertoires standards?

Voilà voilà, merci d'avance :-)
A voir également:

3 réponses

philtrain Messages postés 169 Date d'inscription   Statut Membre Dernière intervention   73
 
Bonjour,

Voir le fichier /etc/ld.so.conf et pour la doc:
$man ld.so


Philippe.
0
kmf31 Messages postés 1564 Date d'inscription   Statut Contributeur Dernière intervention   501
 
Est ce que le système utilise une variable d'environnement où sont contenus ces repertoires.

La reponse est oui et non, c.-a-d. il existe une variable d'environnement qui s'appelle LD_LIBRARY_PATH ou on peut mettre une liste de repertoires bibliotheque mais le "non" c'est pour clarifier que les repertoires du systemes /lib/, /usr/lib/ sont trouve par une autre methode, on total il y en a trois cas:

1) /lib/... et /usr/lib/... ici c'est automatique pour trouver les bibliotheques, c'est prevu comme ca.

2) Les repertoires comme /usr/X11R6/lib, /usr/local/lib, /opt/lib, ou /opt/kde/lib (si en a) etc. Pour ces repertoires on cree ou on a une liste dans le fichier /etc/ld.so.conf. Regarde avec "cat /etc/ld.so.conf" ce que tu as actuellement. Tu peux y ajouter d'autres repertoires mais apres ca ou apres toute installation d'une nouvelle bibliothque il faut faire la commande "ldconfig" pour mettre a jour la base de donnees pour la recherche des lib (notamment pour mettre a jour le ficher binaire cache: /etc/ld.so.cache).
Si on installe avec urpmi, rpm, "make install" de libs la commande "ldconfig" est presque toujours apelee implicitement.

3) La variable LD_LIBRARY_PATH. Ca c'est typiquement pour des bibliotheques personnelles qui sont pas a la disposition de tout le systeme mais seulement pour un utilisateur. Par exemple: /home/toto/lib pour un utilisateur toto. Avec cette variable on peut bien tester de configs temporaires. Comme LD_LIBRARY_PATH est par defaut vide (contrairement au PATH qui est toujours utilise) elle n'apparait au debut pas dans /etc/profile, ni ~/.profile, ni ~/.bashrc etc. mais bien sur on peut y ajouter une ligne comme
export LD_LIBRARY_PATH=~/lib:/ma_lib_privee/lib

(en bash ou avec setenv ... en tcsh).
0
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
Je ne m'imaginais pas recevoir une réponse aussi complète!
J'ai tout ce qu'il me faut!

Grand merci à vous deux !! ;-)
0