Inspired by the setup of Debian chroot for sbuild:
$ apt-get install schroot sbuild btrfs-tools
We will use the btrfs flavor of schroot.
Since btrfs is still experimental, I choose to create loopback device formated with btrfs and mounted as follows:
$ cat <EOF >> /etc/fstab /home/schroot-btrfs /srv/chroot btrfs defaults 0 0 EOF /home/schroot-btrfs is a 20G file (to created if, please help yourself)
Create the centos6 schroot configuration file:
$ cat < 'EOF' > /etc/schroot/chroot.d/centos6-amd64 [centos6-amd64] type=btrfs-snapshot description=CentOS 6/amd64 autobuilder groups=root,sbuild root-groups=root,sbuild profile=sbuildrpm btrfs-source-subvolume=/srv/chroot/centos6-amd64 btrfs-snapshot-directory=/srv/chroot/snapshots EOF
Setup the filesystem subvolume and snapshots
$ btrfs subvolume create /srv/chroot/centos6-amd64 $ mkdir -p /srv/chroot/snapshots
Bootstrap the centos system:
$ cat EOF >> /etc/rinse/rinse.conf [centos-6] mirror = http://ftp.ciril.fr/pub/linux/centos/6/os/i386/Packages/ mirror.amd64 = http://ftp.ciril.fr/pub/linux/centos/6/os/x86_64/Packages/ EOF $ rinse --distribution centos-6 --arch amd64 --directory /srv/chroot/centos6-amd64/
We copy the /dev from a Debian schroot (rinse's one one is buggy)
$ cp -a /srv/chroot/sid-amd64-sbuild/dev /srv/chroot/centos6-amd64/
Finally, we do some customizations to make the centos system schroot friendly
$ echo centos6-amd64 > /srv/chroot/centos6-amd64/etc/debian_chroot $ cat << 'EOF' > /srv/chroot/centos6-amd64/etc/profile.d/debian_chroot.sh # set variable identifying the chroot you work in (used in the prompt below) if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, overwrite the one in /etc/profile) PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' EOF
Test
$ sudo adduser <user> sbuild
(logout and login again)
Enter the snapshoted chroot:
$ schroot -c chroot:centos6-amd64 ...
Enter the source chroot (to upgrade the base system for instance)
$ sudo schroot -c source:centos6-amd64 ..
You can then use sbuildrpm or any other test in the CentOS schroot environement…