Confus, n'est-ce pas? Laissez-moi vous expliquer un peu.
Pourquoi?
- Le logiciel 32 bits fonctionne correctement sur un noyau 64 bits avec un matériel compatible 64 bits.
- Certains logiciels reposent toujours sur des bibliothèques 32 bits spécifiques. Ce n'est pas bien, mais parfois nous n'avons pas le pouvoir de changer cela.
- Le logiciel doit être disponible sur le système pour satisfaire les dépendances, il utilise donc également les référentiels 32 bits.
Je suis début 2011. Que s'est-il passé?
Dans les versions 64 bits d'Ubuntu antérieures à 11.10, certains ensembles de bibliothèques communes 32 bits étaient regroupés dans un seul ia32-libs
package représenté par APT / Dpkg comme étant 64 bits et dans un tel emplacement dans le référentiel. Si vous avez besoin d'une seule bibliothèque pour une application, cela dépendra des 150+ Mo de bibliothèques 32 bits 1 . De toute évidence, ce n'est pas un joli design.
Architectures multiples?
La nouvelle idée était d'introduire des capacités dites "Multiarch" dans APT / Dpkg et les outils qui l'entourent. Cela a été présenté dans plusieurs plans sur Launchpad, en voici un . Oneiric (11.10) est devenu la première version à prendre en charge Multiarch.
Comment ça marche?
Vous pouvez indiquer à Dpkg quelles architectures votre système peut exécuter. Sur mon installation 12.04 64 bits, c'est ici:
$ cat /etc/dpkg/dpkg.cfg.d/multiarch
foreign-architecture i386
Il ouvre tout le monde des i386
packages, avec amd64
toujours le défaut:
$ apt-cache show libqt4-core | grep -E "^(Filename|Architecture)"
Architecture: amd64
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_amd64.deb
$ apt-cache show libqt4-core:i386 | grep -E "^(Filename|Architecture)"
Architecture: i386
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_i386.deb
L'exemple ci-dessus montre que Multiarch permet aux mainteneurs de packages de dépendre simplement de leurs packages libqt4-core:i386
par exemple, et permet d'installer n'importe quelle bibliothèque / package 32 bits (et donc d'installer tout package qui dépend de n'importe quelle bibliothèque / package 32 bits) , plutôt qu'un ensemble présélectionné.
ia32-libs
compatibilité
Dans le cas où vous étiez habitué à installer le ia32-libs
package en tant que package de commodité pour installer un ensemble commun de bibliothèques de base 32 bits, vous pouvez maintenant utiliser . Il s'agit d'un simple métapaquet dépendant du même ensemble de bibliothèques (ou du moins très similaire), mais il sera installé avec la puissance de Multiarch.ia32-libs-multiarch
Lectures complémentaires
1 Pour Lucid (10.04), la taille d'installation du ia32-libs
package est de 155 812,0 ko.
dpkg --print-foreign-architectures
plutôt que de catting/etc/dpkg/dpkg.cfg.d/multiarch
. Il n'existe plus après le 12.04.