Comment installer un chroot 32 bits
1.
Introduction
Introduction au système 64 bits
Ce guide vous aide à installer un vrai chroot 32 bits sur votre système
Gentoo/AMD64.
Comme vous le savez, les systèmes 64 bits ne permettent pas encore d'exécuter
de manière native des applications 32 bits (du moins pas avec Portage). Il vous
faut donc soit utiliser des bibliothèques d'émulation pour les faire
fonctionner, soit créer un vrai système 32 bits à l'intérieur d'un chroot pour
installer et exécuter nativement des applications 32 bits. Dans les cas les
plus courants, vous n'avez pas besoin de construire un système chroot 32 bits.
Néanmoins, si vous voulez exécuter des applications qui n'ont pas de binaires
disponibles pour s'exécuter avec des bibliothèques 32 bits, vous devriez
utiliser un chroot 32 bits. Ce guide va vous montrer comment installer un
chroot 32 bits et comment installer et exécuter des applications à l'intérieur
de ce chroot.
2.
Installation
Installation de votre chroot 32 bits
Pour installer un chroot 32 bits, 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 miroirs.
Exemple de code 2.1 : Télécharger un stage3 depuis un miroir Gentoo |
$ cd /home/user/downloads
$ wget -c ftp://distfiles.gentoo.org/releases/x86/2006.1/stages/stage3-i686-2006.1.tar.bz2
|
Note :
Notez que nous téléchargeons un stage3 pour x86, pas pour AMD64.
|
Après le téléchargement du stage3, vous devez créer un nouveau répertoire pour
construire votre nouveau chroot.
Exemple de code 2.2 : Créer un répertoire pour le chroot 32 bits |
$ su - root
# 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.
Exemple de code 2.3 : Installer à partir du stage3 |
# 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.
3.
Installation
Installation de votre nouveau chroot 32 bits
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
/mnt/gentoo32/etc/make.conf.
Exemple de code 3.1 : Configuration de votre make.conf |
CFLAGS="-O2 -march=athlon-xp -msse2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
|
À présent, montez les divers systèmes de fichiers factices.
Exemple de code 3.2 : Monter les systèmes de fichier virtuels |
# 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 32 bits installé dans votre système 64 bits
et il est presque prêt à être exploité. Dans la prochaine étape, vous devez
créer un lien entre Portage, disponible sur votre système 64 bits, 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.
Exemple de code 3.3 : Lier Portage à /usr/portage à l'intérieur du chroot 32 bits |
# mkdir -p /mnt/gentoo32/usr/portage/
# mount -o bind /usr/portage /mnt/gentoo32/usr/portage/
|
Note :
Chaque fois que vous mettrez Portage à jour en faisant emerge --sync,
vous mettrez également à jour votre chroot 32 bits.
|
Si vous voulez exécuter des applications 32 bits qui utilisent X, vous devez
également monter /tmp.
Exemple de code 3.4 : Monter /tmp pour les applications avec interface utilisateur graphique |
# mount -o bind /tmp /mnt/gentoo32/tmp
|
Nous sommes maintenant prêt à basculer à l'intérieur du chroot.
Exemple de code 3.5 : Basculer dans le chroot |
# emerge setarch
# linux32 chroot /mnt/gentoo32 /bin/bash
# uname -m
i686
|
Attention :
L'utilitaire linux32 est nécessaire pour modifier la valeur de CHOST. Si
vous l'oubliez, vous ne pourrez rien compiler à l'intérieur de l'environnement
chroot.
|
Nous avons maintenant un système chroot 32 bits prêt pour une mise à jour.
Suivez les étapes suivantes pour la mise à jour.
Exemple de code 3.6 : Mise à jour de votre nouveau chroot 32 bits |
# source /etc/profile
# env-update
# emerge -au world
|
Avec ça vous avez quasiment terminé l'installation de votre chroot 32 bits.
Pour rendre les choses plus confortables, nous allons créer un nouveau fichier
dans votre système 64 bits pour activer le 32 bits au démarrage.
Exemple de code 3.7 : Créer un nouveau fichier dans /etc/init.d |
# nano -w /etc/init.d/gentoo32
#!/sbin/runscript
depend() {
need localmount
need bootmisc
}
start() {
ebegin "Montage des répertoires chroot 32 bits"
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 32 bits"
ebegin "Copie des fichiers chroot 32 bits"
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 32 bits"
}
stop() {
ebegin "Démontage des répertoires chroot 32 bits"
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 32 bits"
}
|
Vous n'avez plus qu'à exécuter rc-update add gentoo32 default pour
ajouter gentoo32 au niveau de démarrage « default ».
Chaque fois que vous voudrez basculer vers votre environnement chroot, vous
n'aurez qu'à exécuter la commande suivante : linux32 chroot
/mnt/gentoo32 /bin/bash.
Votre chroot 32 bits est maintenant prêt pour l'installation de nouvelles
applications.
4.
Applications
Installer de nouvelles applications dans votre chroot
Vous avez maintenant un chroot 32 bits complètement opérationnel et vous pouvez
installez n'importe quelle application en mode 32 bits. Voyons comment vous
pouvez installer de nouveaux paquets dans votre chroot 32 bits.
Exemple de code 4.1 : Installer foo dans votre chroot |
# linux32 chroot /mnt/gentoo32 /bin/bash
# source /etc/profile
# env-update
# emerge foo
|
Note :
N'oubliez pas de toujours faire un source /etc/profile et un
env-update après avoir basculé dans votre chroot.
|
Vous avez maintenant installé un nouveau paquet dans votre chroot 32 bits. 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. Chaque fois que vous devez exécuter une application X, exécutez
cette commande dans votre environnement 64 bits.
Exemple de code 4.2 : Astuce Xhost |
# xhost local:localhost
|
Ensuite, basculez à nouveau dans votre environnement chroot et vous devriez
être capable d'exécuter toute application X construite à l'intérieur de votre
chroot 32 bits.
5.
Conclusion
Avec ce chroot, vous pouvez installer un bon nombre de paquets uniquement
disponibles pour les architectures x86. Quelques paquets, tel que
OpenOffice, peuvent être installés en utilisant les binaires disponibles
pour Gentoo/AMD64. Certains des codecs disponibles pour MPlayer
nécessitent ce chroot 32 bits. Vous pourrez donc installer les
win32codecs avec ce chroot.
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|