Gentoo Logo

Comment installer un chroot 32 bits

Table des matières :

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 (Entrez le mot de passe de 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

(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

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.



Imprimer

Dernière mise à jour le 16 septembre 2006

Résumé : Ce HOWTO vous donne la marche à suivre pour créer un chroot 32 bits.

Luis Medinas
Auteur

Alexandre
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.