quelle glibc-2.1? en rpm? compilée? rpm de compatibilité?Je crois en fait que ces librairies se sont installées à partir des CD de la distrib...
où l'as tu mise?
J'ai ainsi:
/usr/i386-glibc21-linux/libc5/
Je suis perdu dans toutes ces nomenclatures et numérotation de librairies, je pense que la première est pour de vieilles machines ??
avec une installation normale, avec les rpm, les librairies se trouvent en /usr/libTu m'as donné l'idée de comparer les libc.so.5 de mes 2 distributions.
xmrg et mopac doivent chercher libc.so. pour démarrer. libc.so est dans /usr/lib et est un lien vers libc.so.6, lui-même dans /usr/lib. mais il leur faudrait libc.so.5!
Tous les deux sont des liens vers libc.so.5.3.12 (les mêmes numéros dans les deux cas...)
pourtant l'un fait 699832 octets et l'autre, sur Mdk8.1, seulement 614576 octets
il est possible d'avoir plusieurs versions de glibc et donc de faire tourner des applications sur ces différentes versions. la version "système" dans un répertoire accessible par LD_LIBRARY_PATH, et les autres dans des répertoires différents et si possibles masqués pour éviter les embrouilles. par ex: /usr/local/glibc-2.1OK, cela paraît logique, j'ai fait ce script où j'essaie de charger d'abord les librairies de /usr/i486-linux-libc5/lib/ avant de chercher ailleurs.
pour lancer le programme, une solution consiste à lui écrire un petit script de lancement du genre:
#!/bin/bash
export LD_LIBRARY_PATH=/usr/local/glibc-2.1/lib:$LD_LIBRARY_PATH
/usr/local/bin/<programme>
Dans un premier temps j'avais tjrs le même pb persistant de fichier non trouvé...
En recopiant libc.so.5.3.12 de l'ancienne distribution à
la place du libc.so.5.3.12 plus petit de Mdk8.1 (une hérésie
sans doute, mais au pt où j'en suis...) enfin çà change
: cette fois on dirait que ma commande du script
export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib/:$LD_LIBRARY_PATH
précédant l'invocation du prg est ignorée.
En effet tjrs d'après strace, xmgr ouvre d'abord
/etc/ld.so.cache
puis les librairies du répertoire /lib et en particulier
/lib/libc.so.6
Au contraire, sur les autres machines, après ouverture de /etc/ld.so.cache
xmgr lit les librairies de
/usr/i486-linux-libc5/lib/
d'abord Xmu, Xt, Xext, X11, SM, ICE ... avec suffixe .so.6
puis la librairie mathématique libm.so.5 (tiens, pas .so.6
...)
puis libc.so.5 (OK, pas libc.so.6, et dans ce cas tu as raison
çà marche!!)
En définitive, sur Mdk8.1 je n'arrive pas à forcer xmgr
à lire libc.so.5 plutôt que libc.so.6 rien qu'en exportant
LD_LIBRARY_PATH au niveau du script... Qu'est-ce-qui peut bien lui
donner l'idée d'aller chercher les lib dynamiques dans /lib alors
que ce répertoire n'est pas dans LD_LIBRARY_PATH ?? (j'ai même
fait carrément ôté tous les autres répertoires
de la liste autres que /usr/i486-linux-libc5/lib/).
J'ai supprimé les fichiers /etc/ld.so.cache et /etc/ld.so.conf
mais cela ne résout rien...
J'espère que l'un de vous (jipe?) a une réponse parce que là je sèche vraiment...
A demain...
-- Didier Mathieu CEA - Le Ripault BP 16 37260 Monts +33 02 47 34 41 85
