Le guide Gentoo Linux chroot 32bit va vous aider à installer un vrai chroot 32bit sur votre système Gentoo/AMD64.
Comme vous le savez, les systèmes 64bit ne permettent pas encore d'exécuter de manière native des applications 32bit (du moins pas avec portage). Il vous faut donc soit utiliser des librairies d'émulation pour les faire fonctionner, soit créer un vrai système 32bit à l'intérieur d'un chroot pour installer et exécuter nativement des applications 32bit. Dans les cas les plus courants vous n'avez pas besoin de construire un système chroot 32bit. Néanmoins, si vous voulez exécuter des applications qui n'ont pas de binaires disponibles pour s'exécuter avec des librairies 32bit, vous devriez utiliser un chroot 32bit. Ce guide va vous montrer comment installer un chroot 32bit et comment installer et exécuter des applications à l'intérieur de ce chroot.
Pour installer un chroot 32bit, vous devez suivre plusieurs étapes de l'installation de Gentoo Linux sur un ordinateur x86. Pour commencer, vous avez besoin du dernier stage3 disponible sur nos
$ cd /home/user/downloads $ wget -c ftp://distfiles.gentoo.org/releases/x86/2006.1/stages/stage3-i686-2006.1.tar.bz2
Après le téléchargement du stage3, vous devez créer un nouveau répertoire pour construire votre nouveau chroot.
$ su root insert your root password # cd /mnt # mkdir gentoo32
Déplacez ensuite le stage que vous venez de télécharger, dépaquetez le et installez le comme dans l'exemple suivant.
# cd /mnt/gentoo32 # tar -xvjpf /home/user/downloads/stage3-i686-2006.1.tar.bz2 # cp -L /etc/resolv.conf /mnt/gentoo32/etc/ # cp -L /etc/passwd /mnt/gentoo32/etc/
Votre chroot est prêt pour l'installation. Lisez le chapitre suivant pour apprendre comment l'installer.
Si tout s'est bien passé jusqu'à cette étape, vous êtes maintenant prêt à finaliser l'installation de ce chroot.
La prochaine étape est l'installation de votre nouveau
CFLAGS="-O2 -march=athlon-xp -msse2 -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CXXFLAGS="${CFLAGS}" MAKEOPTS="-j2"
A présent, montez les divers systèmes de fichier factices.
# mount -o bind /dev /mnt/gentoo32/dev # mount -o bind /dev/pts /mnt/gentoo32/dev/pts # mount -o bind /dev/shm /mnt/gentoo32/dev/shm # mount -o bind /proc /mnt/gentoo32/proc # mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb # mount -o bind /sys /mnt/gentoo32/sys
Vous avez maintenant un réel chroot 32bit installé dans votre système 64bit et il est presque prêt à être exploité. Dans le prochaine étape vous devez créer un lien entre le portage, disponible sur votre système 64bit, et votre chroot. De cette manière, vous n'aurez qu'une installation à mettre à jour plutôt que de dupliquer une grande quantité de données.
# mkdir -p /mnt/gentoo32/usr/portage/ # mount -o bind /usr/portage /mnt/gentoo32/usr/portage/
Si vous voulez exécuter des applications 32bit qui utilisent X, vous devez également monter /tmp.
# mount -o bind /tmp /mnt/gentoo32/tmp
Nous sommes maintenant prêt à basculer à l'intérieur du chroot.
(Ne réalisez pas cette étape si setarch est déjà installé) # emerge setarch # linux32 chroot /mnt/gentoo32 /bin/bash (S'assurer que nous avons une installation i686) # uname -m i686
Nous avons maintenant un système chroot 32bit prêt pour une mise à jour. Suivez les étapes suivantes pour la mise à jour.
# source /etc/profile # env-update # emerge -au world
Avec ça vous avez quasiment terminé l'installation de votre chroot 32bit. Pour rendre les choses plus confortables, nous allons créer un nouveau fichier dans votre système 64bit pour activer le 32bit au démarrage.
# nano -w /etc/init.d/gentoo32 #!/sbin/runscript depend() { need localmount need bootmisc } start() { ebegin "Montage des répertoires chroot 32bit" mount -o bind /dev /mnt/gentoo32/dev >/dev/null mount -o bind /dev/pts /mnt/gentoo32/dev/pts >/dev/null & mount -o bind /dev/shm /mnt/gentoo32/dev/shm >/dev/null & mount -o bind /proc /mnt/gentoo32/proc >/dev/null mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb >/dev/null & mount -o bind /sys /mnt/gentoo32/sys >/dev/null & mount -o bind /tmp /mnt/gentoo32/tmp >/dev/null & mount -o bind /usr/portage /mnt/gentoo32/usr/portage/ >/dev/null & eend $? "Une erreur est survenue durant la tentative de montage des répertoires chroot 32bit" ebegin "Copie des fichiers chroot 32bit" cp -pf /etc/resolv.conf /mnt/gentoo32/etc >/dev/null & cp -pf /etc/passwd /mnt/gentoo32/etc >/dev/null & cp -pf /etc/shadow /mnt/gentoo32/etc >/dev/null & cp -pf /etc/group /mnt/gentoo32/etc >/dev/null & cp -pf /etc/gshadow /mnt/gentoo32/etc >/dev/null & cp -pf /etc/hosts /mnt/gentoo32/etc > /dev/null & cp -Ppf /etc/localtime /mnt/gentoo32/etc >/dev/null & eend $? "Une erreur est survenue durant la tentative de copie des fichiers chroot 32bit." } stop() { ebegin "Démontage des répertoires chroot 32bit" umount -f /mnt/gentoo32/dev/pts >/dev/null umount -f /mnt/gentoo32/dev/shm >/dev/null umount -f /mnt/gentoo32/dev >/dev/null & umount -f /mnt/gentoo32/proc/bus/usb >/dev/null umount -f /mnt/gentoo32/proc >/dev/null & umount -f /mnt/gentoo32/sys >/dev/null & umount -f /mnt/gentoo32/tmp >/dev/null & umount -f /mnt/gentoo32/usr/portage/ >/dev/null & eend $? "Une erreur est survenue durant la tentative de démontage des répertoires chroot 32bit" }
Vous n'avez plus qu'à exécuter
Chaque fois que vous voudrez basculer vers votre environnement chroot, vous n'aurez qu'à exécuter la commande suivante:
Votre chroot 32bit est maintenant prêt pour l'installation de nouvelles applications.
Vous avez maintenant un chroot 32bit complètement opérationnel et vous pouvez installez n'importe quelle application en mode 32bit. Voyons comment vous pouvez installer de nouveaux paquets dans votre chroot 32bit.
# linux32 chroot /mnt/gentoo32 /bin/bash # source /etc/profile # env-update # emerge foo
Vous avez maintenant installé un nouveau paquet dans votre chroot 32bit. Si vous voulez l'exécuter, vous devez être dans votre chroot. Si vous voulez exécuter des applications X, la meilleure solution est d'utiliser l'astuce
# xhost local:localhost
Après ça, basculez à nouveau dans votre environnement chroot et vous devriez être capable d'exécuter toute application X construite à l'intérieur de votre chroot 32bit.
Avec ce chroot, vous pouvez installer un bon nombre de paquets uniquement disponibles pour les architectures x86. Quelques paquets, tel que