Gentoo Logo

Cómo configurar un entorno chroot en sistemas de 32 bits

Contenido:

1.  Introducción

Introducción a los sitemas de 64 bits

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

Como ya sabe los sistemas de 64 bits todavía no ejecutan aplicaciones de 32 bits nativas (al menos no con portage) así que necesitará 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 quiere usar aplicaciones que no tienen un binario disponible para usarlo con bibliotecas de 32 bits, debe usar un entorno chroot de 32 bits. Esta guia le 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 su entorno chroot de 32 bits

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

Listado de Código 2.1: Descargar el stage3 de un servidor réplica de Gentoo

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

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

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

Listado de Código 2.2: Crear un directorio para el entorno chroot de 32 bits

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

Mueva el stage que ha descargado, desempaquételo y prepárelo como en este ejemplo.

Listado de Código 2.3: Instalar desde el 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 tiene el entorno chroot listo para ser configurado. Lea el siguiente apartado para aprender como hacerlo.

3.  Configuración

Configurar el nuevo entorno chroot de 32 bits

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

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

Listado de Código 3.1: Configurar el nuevo make.conf

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

Ahora monte los sistemas de archivos virtuales:

Listado de Código 3.2: Montar 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 tiene un verdadero entorno chroot de 32 bits en su sistema de 64 bits que ya está casi listo para usarse. A continuación, necesita crear un enlace del portage disponible en su sistema de 64 bits a su entorno chroot. Así, solo necesitará 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 actualice su portage haciendo un emerge sync, también actualizará su entorno chroot de 32 bits.

Si quiere usar aplicaciones de 32 bits que usen X también deberá 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: Accediendo al entorno chroot

(Solo haga esto si no tiene util-linux ya instalado)
# emerge util-linux
# linux32 chroot /mnt/gentoo32 /bin/bash
(Asegúrese que está en un sistema i686)
# uname -m
i686

Aviso: Se necesita la utilidad linux32 para cambiar el valor de CHOST.Si se olvida, es muy probable que no pueda compilar nada dentro su sistema chroot.

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

Listado de Código 3.6: Actualizar el nuevo entorno chroot de 32 bits

# source /etc/profile
# env-update
# emerge --sync
# emerge -auDN world

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

Listado de Código 3.7: Crear un nuevo archivo en /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 solo necesita ejecutar rc-update add gentoo32 default para iniciarlo al arrancar la máquina.

Siempre que quiera cambiar a su sistema chroot, solo necesitará ejecutar la siguiente orden: linux32 chroot /mnt/gentoo32 /bin/bash.

Ahora ya tiene su entorno chroot de 32 bits listo para instalar nuevas aplicaciones.

4.  Aplicaciones

Instalar nuevas aplicaciones en su entorno chroot

Ahora que ya tiene un entorno chroot de 32 bits completamente funcional puede instalar cualquier aplicación en modo de 32 bits. Veamos como puede instalar nuevos paquetes en su entorno chroot de 32 bits.

Listado de Código 4.1: Instalar foo en el entorno chroot

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

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

Ahora ya ha instalado una aplicación en su entorno chroot de 32 bits. Si quiere ejecutarla deberá hacerlo en su entorno chroot. Si quiere ejecutar aplicaciones X la mejor solución es hacerlo mediante el truco xhost. Cada vez que necesite ejecutar una aplicación X ejecute lo siguiente en su sistema de 64 bits:

Listado de Código 4.2: El truco xhost

# xhost local:localhost

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

5.  Conclusión

Conclusión de esta guía

Con este entorno chroot podrá 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 codificadores disponibles para MPlayer necesitan este entorno chroot de 32 bits de forma que pueda instalar el paquete win32codecs.



Imprimir

Página actualizada 16 de noviembre, 2012

Sumario: Este CÓMO muestra la forma de crear un entorno chroot en sistemas de 32 bits.

Luis Medinas
Autor

José María Alonso
Traductor

Donate to support our development efforts.

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