Gentoo Logo

1.  Introducere

Introducere în sistemul pe 64 de biţi

Ghidul pentru medii chroot pe 32 de biţi vă va ajuta să setaţi un mediu chroot pe 32 de biţi real pentru sistemul dvs. Gentoo/AMD64.

După cum ştiţi, sistemele pe 64 de biţi nu rulează, încă, aplicaţii pe 32 de biţi în mod nativ (cel puţin, nu cu portage), deci va trebui să utilizaţi biblioteci de emulare pentru a le face să funcţioneze, sau să creaţi un sistem real pe 32 de biţi în interiorul unui mediu chroot pentru a instala şi a rula nativ aplicaţii pe 32 de biţi. Pentru cele mai multe cazuri de utilizare, nu trebuie să creaţi un sistem chroot pe 32 de biţi. În orice caz, dacă doriţi să rulaţi aplicaţii care nu a un binar disponibil pentru a rula cu bibliotecile pe 32 de biţi, ar trebui să utilizaţi un mediu chroot. Acest ghid vă va explica cum să setaţi un mediu chroot pe 32 de biţi şi cum să instalaţi şi să rulaţi aplicaţii în interiorul acestuia.

1.  Instalare

Instalarea mediul chroot pe 32 de biţi

Pentru a instala un mediu chroot pe 32 de biţi, trebuie să urmaţi mulţi dintre paşii utilizaţi pentru a instala Gentoo pe un sistem x86. Pentru moment, trebuie să descărcaţi ultimul fişier stage3 disponibil pe server-ele noastre mirror.

Cod 1.1: descărcarea fişierului stage3 de pe un mirror gentoo

$ cd /home/user/downloads
$ wget -c http://distfiles.gentoo.org/releases/x86/2005.0/stages/athlon-xp/stage3-athlon-xp-2005.0.tar.bz2

Notă: Notaţi faptul că am descărcat un fişier stage pentru x86, şi nu pentru AMD64.

După descărcarea unui fişier stage3, va trebui să creaţi un nou director pentru a construi noul dvs. mediu chroot.

Cod 1.1: crearea directorului pentru mediul chroot pe 32 de biţi

$ su root insert your root password
# cd /mnt
# mkdir gentoo32

Apoi, mutaţi fişierul stage pe care tocmai l-aţi descărcat, dezarhivaţi-l şi setaţi-l ca în următorul exemplu.

Cod 1.1: instalarea din stage3

# cd /mnt/gentoo32
# tar -xvjpf /home/user/downloads/stage3-athlon-xp-2005.0.tar.bz2
# cp -L /etc/resolv.conf /mnt/gentoo32/etc/
# cp -L /etc/passwd /mnt/gentoo32/etc/

Acum, aveţi un mediu chroot gata pentru setare. Consultaţi următorul capitol pentru a învăţa cum să-l setaţi.

1.  Setarea

Setarea noului dvs. mediu pe 32 de biţi

Dacă totul a decurs bine până acum, veţi putea să vă setaţi noul dvs. mediu chroot pe 32 de biţi şi să terminaţi instalarea acestuia.

Următorul pas este să setaţi noul dvs. fişier /mnt/gentoo32/etc/make.conf.

Cod 1.1: Configurarea noului make.conf

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

Acum, mount-aţi diversele sisteme de fişiere virtuale:

Cod 1.1: Mount-area sistemelor de fişiere virtuale

# 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

Acum, aveti un mediu chroot real pe 32 de biţi instalat în sistemul dvs. pe 64 de biţi, ce este aproape gata de utilizare. În continuare, trebuie să creaţi o legătură între structura portage disponibilă în sistemul pe 64 de biţi către mediul chroot. În acest mod, va trebui să îl actualizaţi doar într-o singură instalare în locul duplicării unei mari cantităţi de date.

Cod 1.1: Legarea portage la directorul /usr/portage în mediul chroot pe 32 de biţi

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

Notă: Ori de câte ori vă actualizaţi structura portage prin operaţia de emerge sync, vă actualizaţi, de asemenea, şi mediul chroot.

Dacă doriţi să rulaţi aplicaţii pe 32 de biţi ce necesită X, va trebui, de asemenea, să mount-aţi şi /tmp.

Cod 1.1: Mount-area /tmp pentru aplicaţiile cu interfaţă grafică

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

Acum suntem gata să comutăm în mediul chroot.

Cod 1.1: Comutarea în mediul chroot

(Efectuaţi acest pas doar dacă nu aveţi setarch deja instalat)
# emerge setarch
# linux32 chroot /mnt/gentoo32 /bin/bash
(Asiguraţi-vă că aveţi un setup pe 64 de biţi)
# uname -m
Linux mysystem 2.6.12-gentoo-r1 #1 Mon Jun 27 02:41:55 GMT 2005 i686 AMD Athlon(tm) 64 Processor 3500+ AuthenticAMD GNU/Linux

Atenţie: Utilitarul linux32 este necesar pentru a modifica valoarea CHOST. Dacă îl uitaţi, cel mai probabil nu veţi putea compila nimic în interiorul mediului chroot.

Acum aveţi un sistem chroot pe 32 de biţi nou, gata de actualizare. Urmaţi paşii de mai jos pentru a-l actualiza.

Cod 1.1: Actualizarea noului dvs. mediu pe 32 de biţi

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

După aceasta, practic aţi terminat setarea mediului chroot pe 32 de biţi. Pentru a vă uşura munca, vom seta un fişier nou în sistemul pe 64 de biţi, pentru a activa instrucţiunile pe 32 de biţi la boot.

Cod 1.1: crearea unui nou fişier în /etc/init.d

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

depend() {
   need localmount
   need bootmisc
}

start() {
    ebegin "Mounting 32bits 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 32bits 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 32bits 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 32bits chroot directories"
}

Acum, trebuie doar să rulaţi rc-update add gentoo32 default pentru a rula la boot.

De câte ori veţi dori să comutaţi în mediul dvs. chroot, va trebui să rulaţi numai următoarea comandă: linux32 chroot /mnt/gentoo32 /bin/bash.

Acum, aveţi un mediu chroot pe 32 de biţi, gata pentru instalarea de noi aplicaţii.

1.  Aplicaţii

Instalarea de noi aplicaţii în mediul dvs. chroot

Acum, că aveţi un mediu chroot complet funcţional pe 32 biţi, puteţi instala orice aplicaţie în modul pe 32 de biţi. Să vedem cum puteţi instala pachete noi în noul dvs. mediu chroot pe 32 de biţi.

Cod 1.1: Instalarea pachetului foo în mediul chroot

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

Notă: Amintiţi-vă să efectuaţi mereu operaţiile source /etc/profile şi env-update după comutarea în interiorul mediului chroot.

Acum, aţi instalat un pachet nou în mediul dvs. chroot pe 32 de biţi. Dacă doriţi să rulaţi noul pachet, trebuie să-l rulaţi din mediul chroot. Dacă doriţi să rulaţi aplicaţii X, cea mai bună soluţie este să îl rulaţi utilizând trucul xhost. De câte ori trebuie să rulaţi o aplicaţie X, rulaţi această comandă în mediul pe 64 de biţi:

Cod 1.1: Trucul xhost

# xhost local:localhost

După aceasta, intraţi în mediul chroot din nou şi ar trebui să puteţi rula fiecare aplicaţie X compilată în mediul dvs. chroot pe 32 de biţi.

1.  Concluzie

Concluzia acestui ghid

Cu ajutorul acestui mediu chroot puteţi instala multe pachete disponibile pentru arhitectura x86. Unele pachete, cum ar fi OpenOffice, pot fi instalate utilizând binarul disponibil pentru Gentoo/AMD64. Unele din codec-urile disponibile pentru MPlayer necesită un mediu chroot pe 32 de biţi, deci va trebui să instalaţi win32codecs în interiorul acestui mediu chroot.

Actualizat la 10 Aprilie 2006

Donate to support our development efforts.

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