6. Documentation constructeur

6.1. Prologue

Cette documentation est une simplification de la documentation officielle de live-build et est adaptée à la configuration fournie par ce projet.

6.1.1. Nomenclature

Voir Nomenclature pour des explications sur la nomenclature concernant les lignes de commande.

6.1.2. Numérotation des versions

Nous nous basons sur le principe de numérotation sémantique des versions proposé par Tom Preston Werner.

6.2. Mécanisme général d’une construction

La construction d’une clef USB bootable requiert d’assurer les étapes suivantes :

Note

Les 3 stades de la construction

  • la construction d’une intermédiaire qui mènera à une RC (développement)
  • la construction d’une RC (release candidate) qui mènera à une distribuable (test et validation)
  • la construction d’une version distribuable (mise en production)

Quel que soit le stade de la construction, le mécanisme est toujours le même. La variance d’un stade à l’autre correspond à la position dans l’arbre des configurations figées (sur quel tag nous plaçons-nous pour réaliser la construction).

6.3. Mise en œuvre de la construction

Voir la vidéo de démonstration dont les étapes sont détaillées ci-après.

6.3.1. Pré-requis

Les exigences pour la création ou la distribution de l’images système liveUSB sont faibles :
  • Accès super-utilisateur (root) sur le système
  • Un shell bash >=4.3
  • Un noyau Linux >=2.6
  • Une version mise à jour de live-build >=4.0.3 (voir Installation de live-build pour les utilisateurs sans Debian GNU/Linux)
  • Une version à jour de GNU make >=3.81
  • Une version à jour de cryptsetup >=1.6.6
  • Une version à jour de dd >=8.23 (fourni par le paquet coreutils)
  • Une version à jour de debootstrap >=1.0.67
  • Une version à jour de git >=2.1.4
  • Une version à jour de losetup >=2.26 (fourni par le paquet util-linux)
  • Une version à jour de partprobe >=3.2 (fourni par le paquet parted)
  • Une version à jour de pv >=1.5.7
  • Une version à jour de sfdisk >=2.26
  • Une version à jour de syslinux >=6.03 fournissant l’EFI (syslinux-efi >=6.03 pour Debian)
  • Une version à jour de whiptail >=0.52.17 ou dialog >=1.2

6.3.1.1. Super-utilisateur ?

La commande suivante permet de connaître le nom de l’utilisateur que nous sommes :

# whoami
root

si l’utilisateur n’est pas root, alors il faut s’assurer que nous sommes un utilisateur faisant partie du groupe sudo :

$ groups
lambda cdrom floppy sudo audio video plugdev ...

Si dans la sortie de la commande groups vous n’appercevez pas le mot clef sudo, c’est que vous ne faites pas partie du groupe sudo. Dans ce cas, vérifiez avec l’administrateur de votre système afin d’obtenir un compte vous permettant de réaliser en tant que super-utilisateur les commandes suivantes : make, lb et apt-get.

6.3.1.2. Installer les logiciels nécessaires

# apt-get update && apt-get install git live-build debootstrap make

ou avec sudo

$ sudo apt-get update && sudo apt-get install git live-build debootstrap make

6.3.2. Récupération de la configuration initiale et des outils accessoires

$ cd ~
$ git clone https://framagit.org/groolot/liveUSB.git
$ cd liveUSB
$ ls
auto automate_release burn config credentials dist documentation Makefile README.rst SYSTEM.rst

6.3.3. Choix de la configuration spécifique

6.3.3.1. Lister les configurations disponibles

$ git tag
v0.1
v0.1.1
v0.1.2
v0.1.3
...
v0.1.5-jessie

6.3.4. Exemple de construction de l’image système dans sa version v0.1.3

# git checkout v0.1.3
# make build

ou bien avec sudo

$ git checkout v0.1.3
$ sudo make build

À l’issue de la construction, l’image système se trouve disponible dans le répertoire courant portant le nom liveUSB-v0.1.3-amd64.img (ou tout autre numéro de version en fonction du choix de la configuration fait au préalable).