Table of Contents

Installing ROS fuerte from a chroot image

Deprecated

sudo apt-get install dchroot
sudo mkdir -p /srv/chroots/
cd /srv/chroots/
wget arcoslab.eie.ucr.ac.cr/sid-amd64-2013.02.25-rosbase.tar.bz2
tar -xjf sid-amd64-2013.02.25-rosbase.tar.bz2
#!/bin/bash
CHROOT_DIR=/srv/chroots/
CHROOT_NAME=`basename $0 .sh` 

if [ ! -e /var/run/$CHROOT_NAME ]
then
    sudo touch /var/run/$CHROOT_NAME
    sudo bash -c "echo 1 > /var/run/$CHROOT_NAME"
else
    sudo bash -c "echo `expr 1 + \`cat /var/run/$CHROOT_NAME\`` > /var/run/$CHROOT_NAME"
fi

if [ `cat /var/run/$CHROOT_NAME` -eq 1 ]
then
    echo "First chroot invocation. Mounting host system directories"
    sudo mkdir -p $CHROOT_DIR/$CHROOT_NAME/hostfs
    #mount -o bind /home/ $CHROOT_DIR/$CHROOT_NAME/home
    sudo mount proc -t proc $CHROOT_DIR/$CHROOT_NAME/proc
    sudo mount -o bind /dev $CHROOT_DIR/$CHROOT_NAME/dev
    sudo mount sys -t sysfs $CHROOT_DIR/$CHROOT_NAME/sys
    sudo mount none -t devpts $CHROOT_DIR/$CHROOT_NAME/dev/pts
    sudo mount -o bind / $CHROOT_DIR/$CHROOT_NAME/hostfs
fi

echo "Starting chroot."
#dchroot -c $CHROOT_NAME
sudo chroot $CHROOT_DIR/$CHROOT_NAME su - $USER
echo "Chroot closed."

if [ `cat /var/run/$CHROOT_NAME` -eq 1 ]
then
    echo "Closing last invocation. Unmounting host system directories"
    for i in dev/pts hostfs proc dev sys
    do
  sudo umount $CHROOT_DIR/$CHROOT_NAME/$i
        sleep 0.5
    done
fi

sudo bash -c "echo `expr \`cat /var/run/$CHROOT_NAME\` - 1` > /var/run/$CHROOT_NAME"

if [ `cat /var/run/$CHROOT_NAME` -eq 0 ]
then
    sudo rm /var/run/$CHROOT_NAME
fi
[sid-amd64-2013.02.25-rosbase]
description=Debian sid (unstable)
directory=/srv/chroots/sid-amd64-2013.02.25-rosbase
users=memeruiz    # CHANGE!!!!
#groups=sbuild                                                                  
root-groups=root
aliases=unstable,default   
preserve-environment=true

Now you are done. With:

sid-amd64-2013.02.25-rosbase.sh

You will get your chroot running. (this will not work because you don't have your same user in chroot yet, look down)

Some things to do initially

sudo sid-amd64-2013.02.25-rosbase.sh
adduser username

Notes

If you have questions regarding chroot please check Debian Unstable inside a Chroot for more information.