Etch - message erreur "version GLIB_2.0 not defined ..."

Bonjour,

Voici ma config :
Debian etch
Noyau Linux 2.6-18
JRE 1.5
libstdc++2.10-glibc2.2
libstdc++5
libstdc++6

J’essaye d’installer sur la debian un SGBD Adaptive Serveur Entreprise 12.5.1 ,
mais a chaque lancement de l’install, j’ai un message qui s’affiche :
symbol errno,version GLIB_2.0 not defined in file libc.so.6 with link time reference …

L’application se lance correctement sous une VM Java , l’erreur apparait vraiment à la dernière étape de l’install

Merci de m’éclairer car on m’a dit de faire un : export LD_ASSUME_KERNEL=2.4.18 mais le problème persiste :frowning:(

Aidez-moi !

Merci d’avance pour vos réponses

tu essayes d’installer à partir du gestionnaire de paquet ou à partir des sources ou binaire fournit par les dev ?

Ils ont des forums chez sybase, parceque le message est peu causant, et difficile à interprèter (nécessite peut être un noyau 2.4):
sybase.com:80/support/community-forums

Sinon, je ne sais pas si tu as déjà acheté le truc, mais il y a aussi des trucs libres sybase dans apt, et j’ai vu qu’il y en avait d’autres cités ici:
developpez.net/forums/showth … p?t=248440
que je n’ai pas eu le temps de chercher dans apt.

Tu peux essayer de faire un LD_PRELOAD avant: Je m’explique (attention, ce qui suit est une déduction perso mais je crois correcte, cependant je peux me tromper):
La gestion de errno a changé il y a longtemps mais pour des raisons de compatibilités, la version obsolète a cohabiter dans la libc pendant quelque temps. Il se trouve que la gestion des threads a été refaite dans le noyau et il y a deux versions de la libc:

[quote]/lib/libc.so.6
/lib/tls/libc.so.6
[/quote]
la première est la classique, la deuxième la nouvelle avec la nouvelle gestion des threads. La seconde ne comporte pas la version obsolète de errno. Il te faut forcer l’utilisation de la première. Si des programmes libres, tu n’as pas de soucis, il te suffit de patcher l’appel de errno (exemple camllight, etc). Pour les programmes propriétaires, tu as trois solutions dans l’ordre de préférence (de la meilleure à la moins bonne):

  • Passer au libre
  • Noyer la boite de mails rageurs leur demandant un truc qui marche sous un linux de moins de 14ans
  • Faire toi même ta rustine comme suit:

#!/bin/sh LD_PRELOAD=3D"/lib/libc-2.3.6.so /lib/libm-2.3.6.so" export LD_PRELOAD ton_programme_propriétaire $*
adapte les versions des libraires (là c’est etch) et éventuellement rajoutes en. Tu peux même charger des vieilles versions de la libc par cette méthode.

Bonjour,

Je me dirige vers la 3eme solution, mais les export ne changent rien !
Comment adapte t-on Etch avec les anciennes librairies glibc ?

Si ça peut vous aider, j’ai fait un ldd sur le binaire qui me pose pb :

/opt/sybase/ASE-12_5/bin# ldd -v srvbuild
linux-gate.so.1 => (0xffffe000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7fa9000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7f84000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e52000)
/lib/ld-linux.so.2 (0xb7fbc000)

Version information:
./srvbuild:
libdl.so.2 (GLIBC_2.1) => /lib/tls/i686/cmov/libdl.so.2
libdl.so.2 (GLIBC_2.0) => /lib/tls/i686/cmov/libdl.so.2
libc.so.6 (GLIBC_2.2) => /lib/tls/i686/cmov/libc.so.6
libc.so.6 (GLIBC_2.1.2) => /lib/tls/i686/cmov/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/tls/i686/cmov/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/tls/i686/cmov/libc.so.6
/lib/tls/i686/cmov/libdl.so.2:
libc.so.6 (GLIBC_2.1.3) => /lib/tls/i686/cmov/libc.so.6
libc.so.6 (GLIBC_2.1) => /lib/tls/i686/cmov/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/tls/i686/cmov/libc.so.6
libc.so.6 (GLIBC_PRIVATE) => /lib/tls/i686/cmov/libc.so.6
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
/lib/tls/i686/cmov/libm.so.6:
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
libc.so.6 (GLIBC_2.1.3) => /lib/tls/i686/cmov/libc.so.6
libc.so.6 (GLIBC_2.0) => /lib/tls/i686/cmov/libc.so.6
/lib/tls/i686/cmov/libc.so.6:
ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
ld-linux.so.2 (GLIBC_2.0) => /lib/ld-linux.so.2

Je commence à desepérer et bientôt l’envie va me prendre de changer de distrib !!

Merci d’avance pour vos réponses !!

Pétard c’est quoi cette phrase «j’ai bientôt envie de changer de distrib»? Si tu veux changer de distrib, vas y! Ça ne changera pas ton problème qui est:

Tu as un programme propriétaire à adapter sur un linux récent. Ton programme utilise une vieille libc et est obsolète mais il faut le faire tourner quand même. La distribution ne change rien là dessus au contraire, Etch est réputé pour être vieillote (par encore maintenant mais bientôt).
Il est illusoire de passer à l’ancienne libc, ou bien installe une sarge (et là tu auras plein d’autres soucis, fais plutôt le chroot dans ce cas)

Tu as plusieurs solutions pour faire tourner ton programme. Je t’en ai fourni plusieurs, tu as la possibilité de faire aussi un chroot. Mais que donne la solution que je t’ai suggéré? Tu dis les export ne changent rien? Mais encore?

Bonjour,

En fait les commandes “EXPORT” n’ont pas changé le comportement de l’installation de ASE 12.5.1 qui se termine par ce message : version glibc_2_0 not defined in file libc.so.6 with link time reference …
De plus , j’ai chargé le paquet libdb1-compat, mais rien y fait, toujours le meme message.
Je pense que la dernière solution est le chroot, maîs comment opére t-on pour que l’application fasse le lien avec une ancienne glibc ?
Je ne maitrise pas cette commande, merci de m’aider !

:confused:

Ceci est un exemple d’installation d’un chroot 32 pour faire tourner des applis 32 bits sur une 64:
zapoyok.info/category/howto/
La méthode est la même, sauf par exemple qu’au moment du lancement de debootstrap, tu passes woody, ou sarge (je ne sais pas quelle version est la bonne pour toi, vous avez dû en parler avant avec fran.b) au lieu de sid comme argument. Penser aussi à prendre un sources.list correspondant à la release que tu installes.

[quote=“astrolane”]Bonjour,

En fait les commandes “EXPORT” n’ont pas changé le comportement de l’installation de ASE 12.5.1 qui se termine par ce message : version glibc_2_0 not defined in file libc.so.6 with link time reference …
De plus , j’ai chargé le paquet libdb1-compat, mais rien y fait, toujours le meme message.[/quote]
Je viens de réaliser que tu as du taper les commandes export telle que je te les ai indiquées. Mais il faut adapter. Il faut que tu trouves prennes les librairies sur un linux ou ton soft marche, puis que tu les recopies sur un répertoire /lib/megaoldlib/
Mettons que ces librairies soient libc-2.1.2.so et libm-2.1.2.so
Tu fais

#!/bin/sh LD_PRELOAD=3D"/lib/megaoldlib/libc-2.1.2.so /lib/megaoldlib/libm-2.1.2.so" export LD_PRELOAD ton_programme_propriétaire $*

comme lanceur.
Mais il te faut un jeu de librairie qui marche et ça de toute façonb c’est incontournable. Dis moi si tu veux un jeu de vieilles librairies: J’ai.