|
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.
|