Gentoo Logo

Como crear un entorno chroot de 32 bits

Contenido:

1. Introducción

Introducción a los sistemas de 64 bits

La guía de Gentoo Linux para 32 bits te ayudará a construir un auténtico entorno chroot para tu sistema Gentoo/AMD64.

Como ya sabes los sistemas de 64 bits todavía no ejecutan aplicaciones de 32 bits nativamente (al menos no con portage) así que necesitarás usar bibliotecas de emulación para hacerlas funcionar o crear un verdadero sistema de 32 bits en un entorno chroot para instalar y ejecutar aplicaciones nativas de 32 bits. Sin embargo, si quieres usar aplicaciones que no tienen un binario disponible para usarlo con bibliotecas de 32 bits, debes usar un entorno chroot de 32 bits. Esta guia te enseñará como preparar un entorno chroot de 32 bits y como instalar y ejecutar aplicaciones en este entorno.

2. Instalación

Instalación de tu entorno chroot de 32 bits

Para instalar un entorno chroot de 32 bits deberás seguir muchos de los pasos que sigues al instalar Gentoo Linux en un ordenador x86. De momento, necesitarás el último stage3 disponible en nuestros mirrors.

Listado de código 2.1: descargando stage3 de un mirror Gentoo

$ cd /home/user/downloads
$ wget -c ftp://distfiles.gentoo.org/releases/x86/2006.1/stages/stage3-i686-2006.1.tar.bz2

Nota: Fíjate que descargamos un stage para x86, no para AMD64.

Después de descargar el stage3 deberás crear un directorio para construir tu entorno chroot.

Listado de código 2.2: creando un directorio para el entorno chroot de 32 bits

$ su root introduce tu contraseña de root
# cd /mnt
# mkdir gentoo32

Mueve el stage que has descargado, desempaquétalo y prepáralo como en este ejemplo.

Listado de código 2.3: instalando desde 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/

Ahora ya tienes el entorno chroot listo para ser configurado. Lee el siguiente apartado para aprender como hacerlo.

3. Configuración

Configurando tu nuevo entorno chroot de 32 bits

Si todo ha ido bien hasta aquí, ahora podrás configurar tu entorno chroot de 32 bits y acabar su instalación.

El próximo paso es configurar tu nuevo /mnt/gentoo32/etc/make.conf

Listado de código 3.1: Configurando tu nuevo make.conf

CFLAGS="-O2 -march=athlon-xp -msse2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"

Ahora monta los sistemas de archivos "falsos":

Listado de código 3.2: Montaje de los sistemas de archivos virtuales

# 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

Ahora tienes un verdadero entorno chroot de 32 bits en tu sistema de 64 bits que ya está casi listo para usarse. A continuación, necesitas crear un enlace del portage disponible en tu sistema de 64 bits a tu entorno chroot. Así, sólo necesitarás actualizarlo en una instalación en vez de duplicar un montón de datos.

Listado de código 3.3: Enlazar portage a /usr/portage dentro del entorno chroot de 32 bits

# mkdir -p /mnt/gentoo32/usr/portage/
# mount -o bind /usr/portage /mnt/gentoo32/usr/portage/

Nota: Cada vez que actualices tu portage haciendo un emerge sync, también actualizarás tu entorno chroot de 32 bits.

Si quieres usar aplicaciones de 32 bits que usen las X también deberás montar /tmp.

Listado de código 3.4: Montar /tmp para aplicaciones con GUI

# mount -o bind /tmp /mnt/gentoo32/tmp

Ahora estamos preparados para entrar en el entorno chroot.

Listado de código 3.5: Entrando en el entorno chroot

(Sólo haz esto si no tienes setarch instalado)
# emerge setarch
# linux32 chroot /mnt/gentoo32 /bin/bash

(Asegúrate que estás en un sistema i686)
# uname -m
i686

Aviso: Se necesita la utilidad linux32 para cambiar el valor de CHOST. Si te olvidas, es muy probable que no puedas compilar nada dentro tu sistema chroot.

Ahora tienes un nuevo sistema chroot de 32 bits listo para ser actualizado. Sigue los siguientes pasos para actualizarlo.

Listado de código 3.6: Actualizando tu nuevo entorno chroot de 32 bits

# source /etc/profile
# env-update
# emerge -au world

Después de esto ya has acabado básicamente la configuración de tu entorno chroot de 32 bits. Para hacer las cosas más sencillas, vamos a crear un archivo en tu sistema de 64 bits para habilitar tu entorno chroot de 32 bits al arrancar la máquina.

Listado de código 3.7: creando un nuevo archivo /etc/init.d

# nano -w /etc/init.d/gentoo32
#!/sbin/runscript

depend() {
   need localmount
   need bootmisc
}

start() {
    ebegin "Mounting 32bit chroot dirs"
    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 $? "An error occured while attempting to mount 32bit chroot directories"
    ebegin "Copying 32bit chroot files"
    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 $? "An error occured while attempting to copy 32 bits chroot files."
}

stop() {
    ebegin "Unmounting 32bit chroot dirs"
    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 $? "An error occured while attempting to unmount 32bit chroot directories"
}

Ahora sólo necesitas ejecutar rc-update add gentoo32 default para iniciarlo al arrancar la máquina.

Siempre que quieras cambiar a tu sistema chroot, sólo necesitarás ejecutar la siguiente orden: linux32 chroot /mnt/gentoo32 /bin/bash.

Ahora ya tienes tu entorno chroot de 32 bits lista para instalar nuevas aplicaciones.

4. Aplicaciones

Instalando aplicaciones en tu entorno chroot

Ahora que ya tienes una entorno chroot de 32 bits completamente funcional puedes instalar cualquier aplicación en modo de 32 bits. Veamos como puedes instalar nuevos paquetes en tu entorno chroot de 32 bits.

Listado de código 4.1: Instalando foo en el entorno chroot

# linux32 chroot /mnt/gentoo32 /bin/bash
# source /etc/profile
# env-update
# emerge foo

Nota: Recuerda ejecutar siempre source /etc/profile y env-update al entrar en el entorno chroot.

Ahora ya has instalado una aplicación en tu entorno chroot de 32 bits. Si quieres ejecutarla deberás hacerlo en tu entorno chroot. Si quieres ejecutar aplicaciones X la mejor solución es hacerlo mediante el truco xhost. Cada vez que necesites ejecutar una aplicación X ejecuta lo siguiente en tu sistema de 64 bits:

Listado de código 4.2: Truco Xhost

# xhost local:localhost

Después de hacerlo entra en tu entorno chroot otra vez y serás capaz de ejecutar cualquier aplicación X que hayas instalado en tu entorno chroot de 32 bits.

5. Conclusión

Conclusión de esta guía

Con este entorno chroot podrás instalar muchos paquetes que solo están disponibles para la arquitectura x86. Algunos paquetes como OpenOffice pueden ser instalados mediante el binario disponible para Gentoo/AMD64. Algunos de los codecs disponibles para MPlayer necesitan un entorno chroot de 32 bits, así podrás instalar los win32codecs en este entorno.




Traductor

Jaime Gascón Romero

Print

Actualizado 16 de septiembre, 2006

Sumario: Esta guía te muestra como crear un entorno chroot de 32 bits.

Luis Medinas
Autor

Donate to support our development efforts.

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

php|architect

php|architect

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