Projet

Général

Profil

GitPackagingSbuildBtrfs » Historique » Version 6

Version 5 (Daniel Dehennin, 11/05/2012 10:31) → Version 6/7 (Daniel Dehennin, 11/05/2012 10:34)

{{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>
system@build:~$ sudo apt-get install btrfs-tools
system@build:~$ sudo lvcreate -L20g -n schroot ${YOUR_VG}
system@build:~$ sudo mkfs.btrfs -L schroot -m0 /dev/${YOUR_VG}/schroot
system@build:~$ sudo mkdir -p /srv/chroot
system@build:~$ sudo /bin/sh -c "echo /dev/${YOUR_VG}/schroot /srv/chroot btrfs rw,noatime 0 3 >> /etc/fstab"
system@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>
system@buildd:~$ sudo btrfs subvolume create /srv/chroot/${dist}-${arch}-sbuild
</pre>

h3. Installation du système de base

{{include(eole:GitPackagingCreateSchroot)}}

h3. Adaptation post-installation de schroot pour @btrfs@

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

h4. Création du répertoires contenant les points de montages temporaires

<pre>
system@build:~$ sudo mkdir -p /srv/chroot/snapshots
</pre>

h4. Changement du type de schroot

<pre>
system@build:~$ sudo sed -i -e "s,type=directory,type=btrfs-snapshot,; /directory=/ d" \
/etc/schroot/chroot.d/$dist-$arch-sbuild*
</pre>

h4. Paramétrage spécifique Btrfs

<pre>
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>

h4. Gestion des alias

{{include(eole:GitPackagingSbuildAliases)}}

{{include(eole:GitPackagingWebographie)}}