Como crear un entorno chroot de 32 bits
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.
El contenido de este documento está registrado bajo los términos de la licencia Creative Commons - Reconocimiento / Compartir Igual
|