HOWTO: 32-Bit Chroot on 64-Bit Installs (ubuntu)

Original: http://ubuntuforums.org/showthread.php?t=24575


Most of this comes from http://digital-conquest.ath.cx/wiki/...h_debbootstrap but I wanted to put together a cleaned up version that worked for me here (There are typos and inaccuracies on the wiki page).

REPLACE 'hoary' WITH YOUR CURRENT UBUNTU CODE NAME.

Quote:
Step 1:
  • sudo apt-get install dchroot debootstrap
  • sudo mkdir /chroot/
  • sudo gedit /etc/dchroot.conf
    • Add this line: hoary /chroot
  • sudo debootstrap --arch i386 hoary /chroot/ http://archive.ubuntu.com/ubuntu
  • sudo chroot /chroot/
  • dpkg-reconfigure locales
Step 2:
In another terminal window (or by existing chroot):
  • sudo gedit /chroot/etc/apt/sources.list
  • Add the following lines:
    • deb http://archive.ubuntu.com/ubuntu hoary main restricted universe multiverse
    • deb http://security.ubuntu.com/ubuntu hoary-security main restricted universe multiverse
(We do this step because gedit has yet to be installed in the chroot environment)

Step 3:
In your chrooted environment (chroot /chroot):
  • apt-get update ; apt-get upgrade
Step 4:
In another terminal window (or by existing chroot):
  • sudo cp /etc/passwd /chroot/etc/
  • sudo cp /etc/shadow /chroot/etc/
  • sudo cp /etc/group /chroot/etc/
  • sudo cp /etc/sudoers /chroot/etc/
  • sudo cp /etc/hosts /chroot/etc/
  • sudo gedit /etc/fstab
  • Add the following lines:
    • /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
  • sudo mkdir /chroot/media/cdrom0
  • sudo mount -a
  • sudo gedit /usr/local/bin/do_dchroot
  • Add the following:
    • #!/bin/sh
    • /usr/bin/dchroot -d "`echo $0 | sed 's|^.*/||'` $*"
  • sudo chmod 755 /usr/local/bin/do_dchroot
Step 5:
In a new terminal:
  • dchroot -d
  • sudo apt-get install synaptic
  • sudo ln -s /usr/sbin/synaptic /usr/sbin/synaptic32
  • exit
  • sudo ln -s /usr/local/bin/do_dchroot /usr/local/bin/synaptic32
  • sudo synaptic32
At this point you should have a 32 bit environment setup with synaptic setup. When you run synaptic32 from your main environment it will chroot execute it and all installations will be made to your 32 bit environment. If you want to be able to easily launch 32 bit chroot apps from your 64 bit environment symlink the app name to /usr/local/bin/do_dchroot. If you're using this as desktop system you'll probably want to use synaptic to install x, gnome, ubuntu specific themes, etc.


UPDATE:

To get Firefox setup with Flash I did the following:

  • Ran sudo synaptic32 (as noted in the above thread
  • Installed mozilla-firefox
  • dchroot -d
  • sudo ln -s /usr/lib/libesd.so.0 /usr/lib/libesd.so.1
  • sudo ln -s /usr/bin/firefox /usr/bin/firefox32
  • exit
  • sudo ln -s /usr/local/bin/do_dchroot /usr/local/bin/firefox32
  • Made sure all instances of firefox are closed (you can not run both 32 and 64 bit firefoxes at the same time afaik... it just spawns a new 64 bit thread when you launch the old.
  • firefox32
  • Visited a site with flash on it and ran the automated firefox flash install.

你可能感兴趣的:(HOWTO: 32-Bit Chroot on 64-Bit Installs (ubuntu))