Braveheart1980
24-01-2007, 17:31
Οσοι εχουμε 64bit επεξεργαστες και εχουμε βαλει και gentoo native 64bit συνανταμε αρκετες φορες καποια μικροπροβληματα με απαραιτητα 32bit πακετα
Εδω θα εξηγησουμε πως θα δημιοργησουμε ενα 32bit περιβαλλον για να τρεχουμε τις 32bit εφαρμογες μας κανονικα και πως ακριβως εγκαθιστουμε τις εφαρμογες
Σημειωση:Για ολο το guide ως editor εχω προτιμησει τον nano.Εσεις μπορειτε να χρησιμοποιεισετε οποιον editor θελετε
(1) Ανοιγουμε μια κονσολα και κατεβαζουμ το stage3 tarball σε x86 εκδοση
$ cd /home/user/downloads
$ wget -c ftp://distfiles.gentoo.org/releases/x86/2006.1/stages/stage3-i686-2006.1.tar.bz2
(2) Δημιουργουμε τον φακελο που θα περιεχει το νεο 32bit περιβαλλον μας
$ su root (βαζουμε τον κωδικο του root )
# cd /mnt
# mkdir gentoo32
(3)Μεταφερουμε και αποσυμπιεζουμε το stage3 tarball ως εξης:
# 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/
(4)Aς φτιαξουμε τωρα το make.conf
Μετονομαζουμε το make.conf σε make.conf.old και δημιουργουμε το νεο make.conf ως εξης:
#mv /mnt/gentoo32/etc/make.conf /mnt/gentoo32/etc/make.conf.old
#nano -w /mnt/gentoo32/etc/make.conf
Κανουμε copy-paste ωστε το περιεχομενο του make.conf να ειναι αυτο:
CFLAGS="-O2 -march=athlon-xp -msse2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
(5) Προσαρτουμε καταλληλα τα file systems:
# 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
Τωρα ας συνδεσουμε το portage με το chroot,ωστε οταν κανουμε πχ emerge --sync το 64bit συστημα μας να ενημερωνεται και το 32bit συστημα μας αυτοματα
# mkdir -p /mnt/gentoo32/usr/portage/
# mount -o bind /usr/portage /mnt/gentoo32/usr/portage/
Φροντιζουμε ωστε να τρεχουν οι εφαρμογες με gui
# mount -o bind /tmp /mnt/gentoo32/tmp
(6) Eιμαστε σχεδον ετοιμοι
Ας μπουμε στο 32bit περιβαλλον μας
# linux32 chroot /mnt/gentoo32 /bin/bash
Για να πιστουμε οτι πλεον εχουμε 32bit περιβαλλον εκτελουμε την εντολη
#uname -m που πρεπει να μας επιστρεψει i686 πχ
# uname -m
i686
Τωρα πρεπει να ενημερωσουμε και το 32bit συστημα μας
# source /etc/profile
# env-update
# emerge -au world
(υπομονη καθως το τελευταιο βημα ισως διαρκεσει πολυ)
(7) Τωρα πρεπει να φροντισουμε ωστε να ενεργοποιειται το 32bit συστημα μας κατα το boot.
Kανουμε exit πλεον ωστε να ξαναμπουμε στο 64bit συστημα μας
#exit
Δημιουργουμε ενα αρχειο ονοματι gentoo32 στο init.d ως εξης
# nano -w /etc/init.d/gentoo32
Κανουμε copy-paste το εξης περιεχομενο
#!/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"
}
Kανουμε το αρχειο εκτελεσιμο
#chmod +x /etc/init.d/gentoo32
Και τωρα το προσθετουμε στο startup :
rc-update add gentoo32 default
Aυτο ηταν!
Πλεον εχουμε ενα πληρως λειτουργικο 32bit συστημα!
Πως μπαινουμε ομως σε αυτο;
Απλα,ανοιγουμε μια κονσολα,μπαινουμε σαν root ,δινοντας την εντολη su και επειτα τον κωδικο του root , και επειτα δινουμε την εντολη
linux32 chroot /mnt/gentoo32 /bin/bash
Με αυτη την εντολη μπορουμε να μπαινουμε ανα πασα στιγμη στο 32bit συστημα μας!
Αμεσως μετα θα δουμε πως μπορουμε να προσθεσουμε μια εφαρμογη
Εδω θα εξηγησουμε πως θα δημιοργησουμε ενα 32bit περιβαλλον για να τρεχουμε τις 32bit εφαρμογες μας κανονικα και πως ακριβως εγκαθιστουμε τις εφαρμογες
Σημειωση:Για ολο το guide ως editor εχω προτιμησει τον nano.Εσεις μπορειτε να χρησιμοποιεισετε οποιον editor θελετε
(1) Ανοιγουμε μια κονσολα και κατεβαζουμ το stage3 tarball σε x86 εκδοση
$ cd /home/user/downloads
$ wget -c ftp://distfiles.gentoo.org/releases/x86/2006.1/stages/stage3-i686-2006.1.tar.bz2
(2) Δημιουργουμε τον φακελο που θα περιεχει το νεο 32bit περιβαλλον μας
$ su root (βαζουμε τον κωδικο του root )
# cd /mnt
# mkdir gentoo32
(3)Μεταφερουμε και αποσυμπιεζουμε το stage3 tarball ως εξης:
# 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/
(4)Aς φτιαξουμε τωρα το make.conf
Μετονομαζουμε το make.conf σε make.conf.old και δημιουργουμε το νεο make.conf ως εξης:
#mv /mnt/gentoo32/etc/make.conf /mnt/gentoo32/etc/make.conf.old
#nano -w /mnt/gentoo32/etc/make.conf
Κανουμε copy-paste ωστε το περιεχομενο του make.conf να ειναι αυτο:
CFLAGS="-O2 -march=athlon-xp -msse2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
(5) Προσαρτουμε καταλληλα τα file systems:
# 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
Τωρα ας συνδεσουμε το portage με το chroot,ωστε οταν κανουμε πχ emerge --sync το 64bit συστημα μας να ενημερωνεται και το 32bit συστημα μας αυτοματα
# mkdir -p /mnt/gentoo32/usr/portage/
# mount -o bind /usr/portage /mnt/gentoo32/usr/portage/
Φροντιζουμε ωστε να τρεχουν οι εφαρμογες με gui
# mount -o bind /tmp /mnt/gentoo32/tmp
(6) Eιμαστε σχεδον ετοιμοι
Ας μπουμε στο 32bit περιβαλλον μας
# linux32 chroot /mnt/gentoo32 /bin/bash
Για να πιστουμε οτι πλεον εχουμε 32bit περιβαλλον εκτελουμε την εντολη
#uname -m που πρεπει να μας επιστρεψει i686 πχ
# uname -m
i686
Τωρα πρεπει να ενημερωσουμε και το 32bit συστημα μας
# source /etc/profile
# env-update
# emerge -au world
(υπομονη καθως το τελευταιο βημα ισως διαρκεσει πολυ)
(7) Τωρα πρεπει να φροντισουμε ωστε να ενεργοποιειται το 32bit συστημα μας κατα το boot.
Kανουμε exit πλεον ωστε να ξαναμπουμε στο 64bit συστημα μας
#exit
Δημιουργουμε ενα αρχειο ονοματι gentoo32 στο init.d ως εξης
# nano -w /etc/init.d/gentoo32
Κανουμε copy-paste το εξης περιεχομενο
#!/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"
}
Kανουμε το αρχειο εκτελεσιμο
#chmod +x /etc/init.d/gentoo32
Και τωρα το προσθετουμε στο startup :
rc-update add gentoo32 default
Aυτο ηταν!
Πλεον εχουμε ενα πληρως λειτουργικο 32bit συστημα!
Πως μπαινουμε ομως σε αυτο;
Απλα,ανοιγουμε μια κονσολα,μπαινουμε σαν root ,δινοντας την εντολη su και επειτα τον κωδικο του root , και επειτα δινουμε την εντολη
linux32 chroot /mnt/gentoo32 /bin/bash
Με αυτη την εντολη μπορουμε να μπαινουμε ανα πασα στιγμη στο 32bit συστημα μας!
Αμεσως μετα θα δουμε πως μπορουμε να προσθεσουμε μια εφαρμογη