Cómo configurar un entorno chroot en sistemas de 32 bits
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.
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|