Standard pour les repertoires de Lib

Résolu/Fermé
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 9 déc. 2005 à 19:51
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 10 déc. 2005 à 02:09
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 :-)

3 réponses

philtrain Messages postés 169 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 25 juillet 2010 73
9 déc. 2005 à 20:53
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 mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
10 déc. 2005 à 00:01
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 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
10 déc. 2005 à 02:09
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