Bonjour,
Je cherche à faire quelque chose de ... tordu (au moins, vous êtes prévenus ;-))
J'ai une machine qui comporte plusieurs environnements chrootés. Dans chaque environnement, j'ai une arborescence, qui correspond à une version d'application.
Bien entendu, j'ai donc plein de librairies qui portent le même nom mais qui sont différentes.
Un petit schéma :
/
/chroot_1/monappli1/lib/lib.so
/chroot_1/monappli1/bin/run
/chroot_2/monappli2/lib/lib.so
/chroot_2/monappli2/bin/run
Mon problème, c'est que /chroot_1/monappli1/bin/run utilise la librairie /chroot_1/monappli1/lib/lib1.so et a besoin de le "voir". (idem pour l'appli2)
J'ai joué un temps certain avec le LD_LIBRARY_PATH (en rajoutant les chemins /monappli1/lib et /monappli2/lib). Ca marche pour la majorité des cas.
Le problème, c'est lorsqu'on utilise par exemple sudo, la variable LD_LIBRARY_PATH est réinitialisée, donc perte de chemin des librairies.
La piste que j'explore, pour le moment sans succès, c'est de voir si on peut fusionner deux ld.so.cache (l'un fait dans le premier environnement, l'autre dans le second).
Ce que je ne peux pas faire : modifier quoique ce soit au niveau de l'appli, ni de ses scripts.
Si quelqu'un aurait une idée, je suis preneur!
Merci!
Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"
Poste le Friday 6 February 2009 16:31:22