J'ai une machine avec à la fois glibc i686 et x86_64, et un problème très ennuyeux avec glibc.
Est-il normal d'avoir deux bibliothèques du même nom installées sur un même ordinateur? Comment savoir quelle bibliothèque est exécutée?
Jusqu'à récemment, je pensais que x86_64 était i686. Eh bien, je dois me tromper, mais pourquoi?
[root@machin ~]# yum info glibc
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Excluding Packages in global exclude list
Finished
Installed Packages
Name : glibc
Arch : i686
Version : 2.5
Release : 42
Size : 12 M
Repo : installed
Summary : The GNU libc libraries.
License : LGPL
Description: The glibc package contains standard libraries which are used by
: multiple programs on the system. In order to save disk space and
: memory, as well as to make upgrading easier, common system code is
: kept in one place and shared between programs. This particular package
: contains the most important sets of shared libraries: the standard C
: library and the standard math library. Without these two libraries, a
: Linux system will not function.
Name : glibc
Arch : x86_64
Version : 2.5
Release : 42
Size : 11 M
Repo : installed
Summary : The GNU libc libraries.
License : LGPL
Description: The glibc package contains standard libraries which are used by
: multiple programs on the system. In order to save disk space and
: memory, as well as to make upgrading easier, common system code is
: kept in one place and shared between programs. This particular package
: contains the most important sets of shared libraries: the standard C
: library and the standard math library. Without these two libraries, a
: Linux system will not function.
[root@machin ~]# yum info glibc-common
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Excluding Packages in global exclude list
Finished
Installed Packages
Name : glibc-common
Arch : x86_64
Version : 2.5
Release : 42
Size : 64 M
Repo : installed
Summary : Common binaries and locale data for glibc
License : LGPL
Description: The glibc-common package includes common binaries for the GNU libc
: libraries, as well as national language (locale) support.
Techniquement, i686 est en fait un jeu d'instructions 32 bits (faisant partie de la ligne de la famille x86), tandis que x86_64 est un jeu d'instructions 64 bits (également appelé AMD64).
D'après le son, vous avez une machine 64 bits qui possède des bibliothèques 32 bits pour une compatibilité descendante. Cela devrait être tout à fait correct.
Si vous creusez i686 dans Wikipedia, Wikipedia vous dira que la microarchitecture i686 est considérée comme une extension x86.
En général, toutes les architectures x86 sont considérées comme similaires et l'architecture x86_64 (ou peut-être AMD64) est considérée dans un autre groupe de microarchitectures.
i686 les packages sont destinés à être exécutés sur des processeurs compatibles 686, qui incluent tous les processeurs Intel 32 bits x86 jusqu'au Pentium 4 , etc., ainsi que les processeurs d'AMD ( AMD K6 ) et d'autres fournisseurs qui fabriquent des puces 32 bits compatibles.
Pour plus d'informations:
x86_64 les packages sont destinés à être exécutés sur des processeurs compatibles avec la plate-forme AMD64 64 bits, y compris AMD Athlon 64, AMD Opteron et les familles de processeurs AMD associées, ainsi que les Intel 64 processeurs basés.
Ces processeurs 64 bits sont entièrement rétrocompatibles avec leurs prédécesseurs 32 bits, donc si vous avez un processeur AMD64 ou Intel 64, c'est à vous de décider si vous souhaitez installer les packages x86_64 64 bits ou les packages i686 32 bits. Pour obtenir le meilleur niveau de performances de votre système, vous pouvez utiliser les packages de distribution x86_64 64 bits.
Référence: