= Motivation =

Binary-only applications that were compiled with an earlier libc6 version may be incompatible with a modern ubuntu install.  Applications that crash, seg-fault, or exit with an unresolved symbol, but run fine on older linux systems, need an older environment to run.

= Overview =

This HOWTO will walk through how to create a debian environment that was released in 2002, inside your existing ubuntu system without affecting any of your existing applications or libraries.

= Which Applications? =

I have used this technique to reduce application crashing with sun-jdk-1.4.2, loki-kohan, and loki-tribes2.  Applications that were released as binary-only around 2002 are good candidates for running in a chroot debian woody environment.

= Requirements =

 * chroot requires root access.
 * About 128 MB of free disk space in /opt.
 * Package debootstrap installed.
{{{
 $ sudo apt-get install debootstrap
}}}

= Installing Debian Woody =

Install a base debian woody system into the directory /opt/woody
{{{
 $ sudo debootstrap --arch i386 woody /opt/woody http://archive.debian.org/debian
}}}


chroot into the new environment and install some common X11 packages.
{{{
 $ sudo mount -t proc proc /opt/woody/proc
 $ sudo mount --bind /tmp /opt/woody/tmp
 $ sudo mount --bind /dev /opt/woody/dev
 $ sudo chroot /opt/woody
 # apt-get install xterm
 # exit
 $ sudo umount /opt/woody/proc
 $ sudo umount /opt/woody/tmp
 $ sudo umount /opt/woody/dev
}}}


Create woody environment script in /usr/local/bin/woody
{{{
#!/bin/bash

CHROOT=/opt/woody
if test "$(whoami)" = "root" ; then
	mount -t proc proc $CHROOT/proc
	mount --bind /tmp $CHROOT/tmp
	mount --bind /dev $CHROOT/dev
	mount --bind /usr/local $CHROOT/usr/local
	mount --bind /home $CHROOT/home
	mount --bind /opt $CHROOT/opt
	cp /etc/passwd /etc/group $CHROOT/etc
	if test "$*" ; then
		chroot $CHROOT su $SUDO_USER -c "$*"
	else
		chroot $CHROOT su $SUDO_USER
	fi
	umount -l $CHROOT/proc
	umount -l $CHROOT/tmp
	umount -l $CHROOT/dev
	umount -l $CHROOT/usr/local
	umount -l $CHROOT/home
	umount -l $CHROOT/opt
else
	gksudo "$0 $*"
fi
}}}


Make it executable.
{{{
 $ chmod a+x /usr/local/bin/woody
}}}


Applications can now be run in the debian woody environment by prefixing their launch command with "woody ".

Here is the contents of a kohan start script that is saved in /usr/local/bin/kohan (it must also be executable).
{{{
 woody /usr/local/games/kohan/kohan $*
}}}