lecbee Posté(e) le 7 mai 2008 Partager Posté(e) le 7 mai 2008 Bonjour, J'utilise le programme openldap sur linux. Lui même utilise une base de donnée Berkeley DB pour stocker les données. Mon problème c'est que openldap (2.2.13) utilise berkeley 4.3 qui est installé de base sur ma distrib. Or je voudrais utiliser berkeley 4.2 ! Quand je lance une commande openldap, dans strace je vois ça : open("/etc/ld.so.cache", O_RDONLY) = 3open("/lib64/libdb-4.3.so", O_RDONLY) = 3 Comment faire pour qu'il utilise plutôt berkeley 4.2 que j'ai compilé et installé à partir des sources, et dont le chemin est /usr/local/BerkeleyDB.4.2/lib/. J'ai tenté de mettre ce chemin dans le PATH (en 1er) et même dans LD_LIBRARY_PATH, mais rien n'y fais, c'est /etc/ld.so.cache qui est pris en compte. Je ne sais pas si j'aurais beaucoup de réponse vu la question, mais merci de m'avoir lu quand même Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 7 mai 2008 Partager Posté(e) le 7 mai 2008 PATH ne sert à rien, c'est pour les binaires, pas pour les libs. LD_LIBRARY_PATH, c'est crade, car il faudra que tu l'exportes à chaque fois avant de l'utiliser avec le bon user. C'est mieux de le mettre directement dans le ld.so.conf (man ldconfig) afin que ça fonctionne pour tout le système. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecbee Posté(e) le 7 mai 2008 Auteur Partager Posté(e) le 7 mai 2008 Arf le problème ne semble pas venir de là. J'ai fais les manips indiquées, mais on dirait qu'openldap cherche obligatoirement la librairie libdb-4.3.so, ce qui m'étonne un peu. Dans le strace j'ai ça : open("/usr/local/BerkeleyDB.4.2/lib/libdb-4.3.so", O_RDONLY) = -1 ENOENT (No such file or directory) Donc forcément ça ne risque pas de marcher. Va falloir que je cherche autre part. Lien vers le commentaire Partager sur d’autres sites More sharing options...
djuke Posté(e) le 7 mai 2008 Partager Posté(e) le 7 mai 2008 Arf le problème ne semble pas venir de là. J'ai fais les manips indiquées, mais on dirait qu'openldap cherche obligatoirement la librairie libdb-4.3.so, ce qui m'étonne un peu.Dans le strace j'ai ça : open("/usr/local/BerkeleyDB.4.2/lib/libdb-4.3.so", O_RDONLY) = -1 ENOENT (No such file or directory) Donc forcément ça ne risque pas de marcher. Va falloir que je cherche autre part. peux tu me donner le résultat de ldd <chemin vers l'executable openldap> avant et après la modif de LD_LIBRARY_PATH ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecbee Posté(e) le 7 mai 2008 Auteur Partager Posté(e) le 7 mai 2008 Ah ben je viens d'apprendre une commande ^^ # ldd /usr/local/libexec/slapd donne : libdb-4.3.so => /lib64/libdb-4.3.so (0x0000003fa3000000) libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x0000003fa4000000) libssl.so.6 => /lib64/libssl.so.6 (0x0000003fa7c00000) libcrypto.so.6 => /lib64/libcrypto.so.6 (0x0000003fa6400000) libresolv.so.2 => /lib64/libresolv.so.2 (0x0000003fa5c00000) libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003fa3c00000) libc.so.6 => /lib64/libc.so.6 (0x0000003fa2800000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003fa2c00000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x0000003fa4800000) libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x0000003fa7400000) libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x0000003fa6800000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003fa5400000) libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x0000003fa6c00000) libz.so.1 => /usr/lib64/libz.so.1 (0x0000003fa4400000) /lib64/ld-linux-x86-64.so.2 (0x0000003fa2400000) libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x0000003fa6000000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003fa7000000) libselinux.so.1 => /lib64/libselinux.so.1 (0x0000003fa3400000) libsepol.so.1 => /lib64/libsepol.so.1 (0x00002aaaaaaba000) Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 7 mai 2008 Partager Posté(e) le 7 mai 2008 Quelle distrib ? Si ton ldap a été compilé avec l'option en hard, ça doit être dans les dépendances du gestionnaire du paquet. Sinon il faut voir si ldap a une configuration quelque part pour ça. Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecbee Posté(e) le 7 mai 2008 Auteur Partager Posté(e) le 7 mai 2008 Quelle distrib ?Si ton ldap a été compilé avec l'option en hard, ça doit être dans les dépendances du gestionnaire du paquet. Sinon il faut voir si ldap a une configuration quelque part pour ça. C'est sur une CentOS 5.1 OpenLDAP a été compilé à partir des sources oui. Lors de la compilation d'Openldap, il y a cela : # ./configure [...] checking for db.h... yes checking for Berkeley DB link (default)... no checking for Berkeley DB link (-ldb42)... no checking for Berkeley DB link (-ldb-42)... no checking for Berkeley DB link (-ldb-4.2)... no checking for Berkeley DB link (-ldb-4-2)... no checking for Berkeley DB link (-ldb-4)... no checking for Berkeley DB link (-ldb4)... no checking for Berkeley DB link (-ldb)... yes checking for Berkeley DB thread support... yes checking Berkeley DB version for BDB backend... yes [...] Il doit surement trouver le paquet Berkeley DB en version 4.3 qui est installé par les dépôts. Quand j'exécute ceci pour expliciter le chemin vers les lib BDB4.2 ça ne change rien : # ./configure --libdir=/usr/local/BerkeleyDB.4.2/lib/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
djuke Posté(e) le 7 mai 2008 Partager Posté(e) le 7 mai 2008 Il a été compilé avec la version 4.3, donc c'est celle là qu'il va chercher. Lis bien l'output de ./configure --help, pour voir si ce n'est pas une autre option que --libdir Lien vers le commentaire Partager sur d’autres sites More sharing options...
lecbee Posté(e) le 7 mai 2008 Auteur Partager Posté(e) le 7 mai 2008 Oui effectivement, il ne trouvait pas BDB en version 4.2, seulement la 4.3 Quand je compilais Openldap en précisant le chemin vers BDB 4.2 il ne trouvait rien. (Avec configure --libdir=[..]) Mais quand je compile d'abord Berkeley DB 4.2 avec configure --prefix=/usr/local, ben après Openldap trouve bien BDB4.2 Donc ça fonctionne comme ça. Merci de m'avoir éclairé ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
kran Posté(e) le 7 mai 2008 Partager Posté(e) le 7 mai 2008 mets resolu dans le titre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.