[Linux] glibc2.3 et 2.4

Benoit Speckel Benoit.Speckel@::1
Ven 7 Nov 16:34:01 CET 2008


On Fri, Nov 07, 2008 at 11:17:26AM +0100, Sébastien HEITZMANN wrote:
> Es-ce que qqu'un sais ou je peux trouver les versions de distrib qui 
> utilisent les deux versions de la libc ?
> 
> Par exemple pour debian, sarge est en 2.3 et etch en 2.4. Du coup, un 
> prog compilé sous etch ne marche pas sur sarge. C'est pas pratique.
Normalement, il y a compatibilité avec les anciennes versions, en Etch
on peut utiliser des programmes compilés sous Sarge :
	- la libc ne pose en principe pas de problème
	- les bibliothèques c++ (et sans doute d'autres) de Sarge, Woody...
	sont disponibles en Etch

Exécuter des programmes compilés sous Etch avec Sarge est plus délicat.
Le mieux est sans doute de recompiler.

Pour un logiciel propriétaire, j'ai utilisé les commandes suivantes :

dest=/opt/debian-etch
rm -rf $dest
mkdir -p $dest/tls
for f in /opt/xxxxxxx/bin/*
do      ldd $f
done | awk '{ if ($2 == "=>") print $3; else print $1 }' |
sed s:/tls/:/: | sort -u |
while read f
do      g=$f
        [ -h $g ] && g=`readlink -f $g`
        [ -e "$g" ] || continue
        cp -p "$g" $dest
done
cp -p `ls /lib/libnss_*| grep -vE 'hesiod|nisplus'` $dest
tar c -C /lib tls | tar x -C $dest
ldconfig -n $dest{,tls}

la manoeuvre consiste à récupérer le nom de toutes bibliothèques
dynamiques utilisées, et à les copier sous /opt/debian-etch.
Sur la machine en Sarge, les programmes sont exécutés avec la variable
d'environnement LD_LIBRARY_PATH=/opt/debian-etch au travers d'un petit
wrapper en shell.

-- 
Cordialement,

Benoit SPECKEL
IPHC


Plus d'informations sur la liste de diffusion linux