Si libtest1-2.1-1mdk.i586.rpm était utilisé, la mise à jours de la lib x86_64 serait refusée et libtest1-2.1-1mdk.i586.rpm ne serait pas viré
Tu avoues donc que par ce biais tu perds l'indépendance des mises à jour de packages en environnement biarch. D'où l'intérêt d'avoir des packages de bibliothèques nommés différemment.
Effectivement, même si je ne suis pas d'accord avec ce comportement car les packages amd64/i586 doivent pouvoir vivre indépendament d'une architecture à l'autre:
[gb@galois T]$ sudo rpm -Fvh test-x86_64-2.1-2mdk.amd64.rpm libtest1-2.1-2mdk.amd64.rpm
error: Failed dependencies:
libtest.so.0 is needed by (installed) test-i386-2.1-1mdk
Et tu vois ensuite tout de suite que,
[gb@galois T]$ sudo rpm -Fvh *2.1-2mdk*.rpm
Preparing... ########################################### [100%]
1:libtest1 ########################################### [ 25%]
2:libtest1 ########################################### [ 50%]
3:test-i386 ########################################### [ 75%]
4:test-x86_64 ########################################### [100%]
[gb@galois T]$ rpm -qa --qf "%{name}-%{version}.%{arch}\n" "*test*"
libtest1-2.1.amd64
libtest1-2.1.i586
test-i386-2.1.i586
test-x86_64-2.1.amd64
Bref, il faut donc la même version-release du package de libs avec la méthode rpm standard, comme initialement indiqué.
[^] # Re: Mandrakelinux 10.0 Official est arrivée !
Posté par Gwenole Beauchesne . En réponse à la dépêche Mandrakelinux 10.0 Official est arrivée !. Évalué à 3.
Tu avoues donc que par ce biais tu perds l'indépendance des mises à jour de packages en environnement biarch. D'où l'intérêt d'avoir des packages de bibliothèques nommés différemment.
Bref, ça marche bien.
Voyons cela.
[gb@galois T]$ ls
libtest1-2.1-1mdk.amd64.rpm libtest1-2.1-2mdk.i586.rpm test-x86_64-2.1-1mdk.amd64.rpm
libtest1-2.1-1mdk.i586.rpm test-i386-2.1-1mdk.i586.rpm test-x86_64-2.1-2mdk.amd64.rpm
libtest1-2.1-2mdk.amd64.rpm test-i386-2.1-2mdk.i586.rpm
[gb@galois T]$ rpm -qlp test-x86_64-2.1-1mdk.amd64.rpm
/usr/bin/testapp.x86_64
[gb@galois T]$ rpm -qpR test-x86_64-2.1-1mdk.amd64.rpm
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
libc.so.6()(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libtest.so.0()(64bit)
[gb@galois T]$ sudo rpm -i *2.1-1mdk*
[gb@galois T]$ rpm -qa --qf "%{name}-%{version}.%{arch}\n" "*test*"
test-i386-2.1.i586
test-x86_64-2.1.amd64
libtest1-2.1.i586
libtest1-2.1.amd64
Effectivement, même si je ne suis pas d'accord avec ce comportement car les packages amd64/i586 doivent pouvoir vivre indépendament d'une architecture à l'autre:
[gb@galois T]$ sudo rpm -Fvh test-x86_64-2.1-2mdk.amd64.rpm libtest1-2.1-2mdk.amd64.rpm
error: Failed dependencies:
libtest.so.0 is needed by (installed) test-i386-2.1-1mdk
Et tu vois ensuite tout de suite que,
[gb@galois T]$ sudo rpm -Fvh *2.1-2mdk*.rpm
Preparing... ########################################### [100%]
1:libtest1 ########################################### [ 25%]
2:libtest1 ########################################### [ 50%]
3:test-i386 ########################################### [ 75%]
4:test-x86_64 ########################################### [100%]
[gb@galois T]$ rpm -qa --qf "%{name}-%{version}.%{arch}\n" "*test*"
libtest1-2.1.amd64
libtest1-2.1.i586
test-i386-2.1.i586
test-x86_64-2.1.amd64
Bref, il faut donc la même version-release du package de libs avec la méthode rpm standard, comme initialement indiqué.