Thursday, April 13, 2006

Ako som inštaloval debian_amd64 časť tretia.

Nastavenie chroot pre spúšťanie 32bit aplikácií.

Keď už som mal konečne to vlastné funkčné jadro, bolo na čase vrátiť sa späť k práci na webových projektoch. Čo ale k tomu potrebujem - určite ftp klient a prehliadač, v ktorom mi pobeží flash. Ftp musí zvládať i bezpečné pripojenie cez TLS a jediný ftp klient, ktorý tomu vyhovuje a používam ho už od nepamäti je 32bit IglooFTP ( s kftpgrabber ani s fireFTP sa mi nepodarilo pripojiť na niektoré servery s TLS ). Ďalej potrebujem wine na spúštanie IE, cedegu na spúštanie hier a OpenOffice. Ani jedna z týchto aplikácíí zatiaľ nie je naportovaná na debian_amd64 takže prišiel na rad chroot a inštalácia 32bit debianu(sid) doň.

Postup som našiel na jednom fóre k ubuntu takže po menšej úprave je výsledok takýto:

Krok 1:

# apt-get install dchroot debootstrap
# mkdir /chroot/
# vim /etc/dchroot.conf

Pridať riadok:
sid /chroot

# debootstrap --arch i386 sid /chroot/ http://ftp.sk.debian.org/debian
# chroot /chroot/
# dpkg-reconfigure locales

Krok 2:
Mimo chroot ( v inom terminále ):
# vim /chroot/etc/apt/sources.list

Pridať riadky:
deb http://ftp.sk.debian.org/debian sid main contrib non-free
deb-src http://ftp.sk.debian.org/debian sid main contrib non-free
### security
deb http://security.debian.org/ sarge/updates main contrib non-free


Krok 3:
V chroot prostredí (# chroot /chroot) spustiť:

# apt-get update ; apt-get upgrade

Krok 4:
Mimo chroot ( v inom terminále ):

# cp /etc/passwd /chroot/etc/
# cp /etc/shadow /chroot/etc/
# cp /etc/group /chroot/etc/
# cp /etc/sudoers /chroot/etc/
# cp /etc/hosts /chroot/etc/
# vim /etc/fstab

Pridať následujúce riadky:
/home /chroot/home none bind 0 0
/tmp /chroot/tmp none bind 0 0
/dev /chroot/dev none bind 0 0
/proc /chroot/proc proc defaults 0 0
/media/cdrom0 /chroot/media/cdrom0 none bind 0 0
/usr/share/fonts /chroot/usr/share/fonts none bind 0 0


# mkdir /chroot/media/cdrom0
# mount -a

Vytvoriť skript do_chroot, ktorý spustí aplikáciu v chroot prostredí.

# vim /usr/local/bin/do_dchroot

Pridať následujúce:
#!/bin/bash
xhost + local:

temp=`echo $0 | sed 's|^.*/||'`
command=`echo $temp | sed 's/32//'`

for arg; do
arg=`echo $arg | sed -e 's/ /\\\ /g'`
args=`echo $args $arg`
done

/usr/bin/dchroot -d -- -c "$command $args"


Ďalej nastaviť práva na spúšťanie:

# chmod 755 /usr/local/bin/do_dchroot


Krok 5:
Nainštalovanie aplikácie v chroot-e a vytvorenie symlinku na skript do_chroot, ktorý spúšťa aplikáciu v chroot-e.

dchroot -d
apt-get install openoffice.org firefox wine flashplayer-mozilla
exit
ln -s /usr/local/bin/do_dchroot /usr/local/bin/ooffice32
ln -s /usr/local/bin/do_dchroot /usr/local/bin/ooo-wrapper32
ln -s /usr/local/bin/do_dchroot /usr/local/bin/firefox32
ln -s /usr/local/bin/do_dchroot /usr/local/bin/wine32


Teraz už len stačí nainštalovať v chroote 32bit aplikáciu v /usr/local/bin si vytvoriť symlink s koncovkou "32" na do_chroot skript a po spustení aplikacia32 sa vykoná dchroot -d aplikacia a aplikácia sa spustí v 32 bitovom debiane.

No comments: