<Précédent | Table des matières | Suivant>
Modifications liées à plusieurs arches
Pour rendre multi-arch réellement utile et utilisable, les bibliothèques ont dû être reconditionnées et déplacées vers un répertoire spécifique à l'architecture afin que plusieurs copies (ciblant différentes architectures) puissent être installées les unes à côté des autres. Ces packages mis à jour contiennent les Multi-Arch: même champ d'en-tête pour indiquer au système de packaging que les différentes architectures du package peuvent être co-installées en toute sécurité (et que ces packages ne peuvent satisfaire que les dépendances des packages de la même architecture).
$ dpkg -s libwine
dpkg-query : erreur : --status a besoin d'un nom de package valide mais 'libwine' n'est pas : ambigu
➥ nom de package 'libwine' avec plusieurs instances installées
Utilisez --help pour obtenir de l'aide sur l'interrogation des packages.
$ dpkg -s libwine:amd64 libwine:i386 | grep ^ Multi
Multi-Arch : même Multi-Arch : même
$ dpkg -L libgcc1:amd64 |grep .so
[...]
/usr/lib/x86_64-linux-gnu/wine/libwine.so.1
$ dpkg -S /usr/share/doc/libwine/copyright
libwine:amd64, libwine:i386 : /usr/share/doc/libwine/copyright
$ dpkg -s libwine
dpkg-query : erreur : --status a besoin d'un nom de package valide mais 'libwine' n'est pas : ambigu
➥ nom de package 'libwine' avec plusieurs instances installées
Utilisez --help pour obtenir de l'aide sur l'interrogation des packages.
$ dpkg -s libwine:amd64 libwine:i386 | grep ^ Multi
Multi-Arch : même Multi-Arch : même
$ dpkg -L libgcc1:amd64 |grep .so
[...]
/usr/lib/x86_64-linux-gnu/wine/libwine.so.1
$ dpkg -S /usr/share/doc/libwine/copyright
libwine:amd64, libwine:i386 : /usr/share/doc/libwine/copyright
Il est à noter que Multi-Arch: même les packages doivent avoir leurs noms qualifiés avec leur architecture pour être identifiables sans ambiguïté. Ces packages peuvent également partager des fichiers avec d'autres instances du même package ; dpkg garantit que tous les packages ont des fichiers identiques bit à bit lorsqu'ils sont partagés. De plus, toutes les instances d'un package doivent avoir la même version, elles doivent donc être mises à niveau ensemble.
La prise en charge de Multi-Arch apporte également des défis intéressants dans la manière dont les dépendances sont gérées. La satisfaction d'une dépendance nécessite soit un package marqué Multi-Arch : étranger ou un package dont l'architecture correspond à celle du package déclarant la dépendance (dans ce processus de résolution des dépendances, les packages indépendants de l'architecture sont supposés être de la même architecture que l'hôte). Une dépendance peut également être affaiblie pour permettre à n'importe quelle architecture de la remplir, avec le paquet:quelconque syntaxe, mais les packages étrangers ne peuvent satisfaire une telle dépendance que s'ils sont marqués Multi-Arch : autorisé.
Documentation