Projet

Général

Profil

GitPackagingSbuildBtrfs » Historique » Version 3

Version 2 (Daniel Dehennin, 10/01/2012 11:02) → Version 3/7 (Daniel Dehennin, 16/01/2012 14:10)

{{include(eole:GitPackagingSbuildCommon)}}

h3. Un volume logique pour tous les chroots

Ce volume contiendra les chroots des différents systèmes pour lesquels
vous ferez des compilation.

Un snapshot sera créé avant chaque build et détruit après, cela permet
de gagner le temps du debootstrap.

<pre>
buildd@build:~$ sudo apt-get install btrfs-tools
buildd@build:~$ sudo lvcreate -L20g -n schroot ${YOUR_VG}
buildd@build:~$ sudo mkfs.btrfs -L schroot -m0 /dev/${YOUR_VG}/schroot
buildd@build:~$ sudo mkdir -p /srv/chroot
buildd@build:~$ sudo /bin/sh -c "echo /dev/${YOUR_VG}/schroot /srv/chroot btrfs rw,noatime 0 3 >> /etc/fstab"
buildd@build:~$ sudo mount /srv/chroot
</pre>

h3. Création d’un sous volume par chroot

Il est nécessaire de mettre en place un sous volume par distribution/architecture

<pre>
buildd@buildd:~$ sudo btrfs subvolume create /srv/chroot/${dist}-${arch}-sbuild
</pre>

h3. Installation du système de base

{{include(eole:GitPackagingCreateSchroot)}}

h3. Adaptation de schroot pour @btrfs@

Nous devons ensuite adapter la configuration de @schroot@ à
l’utilisation des snapshot @btrfs@ :

<pre>
buildd@build:~$ sudo mkdir -p /srv/chroot/snapshots
buildd@build:~$ sudo sed -i -e "s,type=directory,type=btrfs-snapshot,; /directory=/ d" \
-e "/type=/ialiases=eole-2.3,eole-2.3-dev,eole-2.3-proposed,eole-2.3-security" "/type=/ialiases=eole2.3,eole2.3-dev,eole-2.3-proposed,eole-2.3-security" \
/etc/schroot/chroot.d/$dist-$arch-sbuild*
buildd@build:~$ sudo /bin/sh -c "cat >> `expr /etc/schroot/chroot.d/$dist-$arch-sbuild*` <<EOT
btrfs-source-subvolume=/srv/chroot/$dist-$arch-sbuild
btrfs-snapshot-directory=/srv/chroot/snapshots
EOT
"
</pre>

{{include(eole:GitPackagingWebographie)}}