|
1.
Introducción
Introducción a los sistemas de 64 bits
La guía de Gentoo Linux para entornos chroot de 32 bits le ayudará a
construir un auténtico entorno enjaulado para su sistema Gentoo/AMD64.
Como ya sabe, los sistemas de 64 bits todavía no ejecutan aplicaciones
de 32 bits nativamente (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
guía le enseñará como preparar un entorno chroot de 32 bits y como
instalar y ejecutar aplicaciones en este entorno.
1.
Instalación
Instalación de un 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 mirrors.
Listado de Código 1.1: descargar 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í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 1.1: 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 1.1: instalar 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.
1.
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 1.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:
Listado de Código 1.1: 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í, sólo necesitará actualizarlo en una instalación
en vez de duplicar un montón de datos.
Listado de Código 1.1: 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 las X también deberá
montar /tmp.
Listado de Código 1.1: 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 1.1: Acceder al entorno chroot |
# emerge --noreplace sys-apps/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 1.1: Actualizar el nuevo entorno chroot de 32 bits |
# source /etc/profile
# env-update
# emerge -au 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 1.1: 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 sólo necesita ejecutar rc-update add gentoo32 default
para iniciarlo al arrancar la máquina.
Siempre que quiera cambiar a su sistema chroot, sólo 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.
1.
Aplicaciones
Instalando 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 1.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 1.1: 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.
1.
Conclusión
Conclusión de esta guía
Con este entorno chroot podrá instalar muchos paquetes que sólo 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 un entorno chroot de 32 bits como éste, por
lo que tendrá que instalar win32codecs en su entorno chroot.
|